13 Stimmen

Gibt es eine Möglichkeit, ein Slice zum Ende eines anonymen Arrays in Perl zu greifen?

Das hat mich in der letzten halben Stunde völlig aus dem Konzept gebracht. Gibt es eine Möglichkeit für mich, ein Array-Slice an das Ende eines anonymen Arrays zu greifen? Ich habe es versucht:

(split(' ',$test_line))[1..$#_]

und ich habe es versucht: (split(' ',$test_line))[1..-1]

aber ärgerlicherweise funktioniert nichts davon. Ich möchte wirklich nicht eine zusätzliche temporäre Variable instanziiert, um die Zwischen-Array (die ich nicht brauche) haben. Und ich möchte wirklich nicht eine hässliche und unleserliche One-Liner verwenden (fand ein paar von denen online). Gibt es wirklich keine geradlinigen Weg, dies zu tun?

0voto

MkV Punkte 3018

Wenn Sie bereit sind, zweimal zu splitten:

my @g =  (split ' ', $test_str)[1..split(' ', $test_str)];

oder richtiger: (da split die Anzahl der gefundenen Felder zurückgibt (ein Feld mehr als der Index des letzten Feldes, da er auf 0 basiert):

my @g =  (split ' ', $test_str)[1..split(' ', $test_str)-1];

leider werfen diese eine veraltete Warnung unter 'warnings' pragma, und klotzt den Inhalt von @_ (es sei denn, Sie verwenden 5.12, dann sind Sie gut, sonst gehen mit einer temporären Variablen, Inline-Sub oder eine Schleife).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X