"push" adds stuff into the back of an array, while "pop" removes it.
"chomp" deletes the last "line ending" character(s), if they exist.
The "sort" uses the "Numeric compare" operator "<=>" to compare the length, and returns each item in the sorted array as "$_", which is then printed along with a newline (\n).
The sort BLOCK using "$a <=> $b" is a common/canonical perl idiom for numeric sort. Just accept that till you research it deeper.
"$_" is commonly used as a "temporary" variable when the programmer is too lazy to give it a name.
Note - this code is not limited to 4 entries - it requires an END to be entered after the last entry.use strict; use warnings; my @seq; # DNA sequence strings do{ print "Please enter DNA sequence (END to finish):"; push @seq , $_=<STDIN>; # First, assign whatever is read into $_, + then append it to @seq } until $_ eq "END\n"; pop @seq; # Remove the extra "END\n" entry; chomp @seq; # Remove line endings on each entry print "$_\n" for sort {length $a <=> length $b} @seq;
"Imaginary friends are a sign of a mental disorder if they cause distress, including antisocial behavior. Religion frequently meets that description"
In reply to Re: Length of strings in an array
by NetWallah
in thread Length of strings in an array
by shabird
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |