in reply to Length of strings in an array
"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"
|
|---|