in reply to Two meanings of undef

... undef can be used on the right side of split function or array assignment to skip values that you do not need.

Just to be clear, undef can be used on the left side of list assignment to skip values that you do not need. (Update: Actually, the last | second paragraph of haukex's reply covers this point.)

c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "my $current_time = '14:30:05'; my @ra = my (undef, $min, $sec) = split ':', $current_time; print qq{'$min' '$sec'}; dd \@ra; " '30' '05' [14, 30, "05"]

Update: Example code above works the same if the perhaps-a-trifle-obscure
    my @ra = my (undef, $min, $sec) = split ':', $current_time;
statement is replaced with the more conventional
    my ($min, $sec);
    my @ra = (undef, $min, $sec) = split ':', $current_time;
(update: or if array assignment is done first
    ... = my @ra = split ':', $current_time;)


Give a man a fish:  <%-{-{-{-<