#### Fill lines from a string into an array: $_ = "Tony Jeff Jimmy Tammy";
## TIMTOWToDI -- either (1.) @kids = split "\n", $_; print "(1.) ", join ":", @kids; ## or, because both parameters are default: @kids = split; print "\n(1a.) ", join ":", @kids; print "\n(1b.) @kids"; ## or (2.) @kids = m,(.+),g; print "\n(2.) ", join ":", @kids; ## or (3.) s'(.+)'push (@Kids, $1); $1'eg; print "\n(3.) ", join ":", @Kids; ## or (4.) s'(.+)'remember($1)'eg; sub remember { push @KIds, $_[0] } print "\n(4.) ", join ":", @KIds; ## finally (5.) @kids = split "\n", $_; print "\n(5.) ", join ":", @kids; =Comments: TIMTOWToDI = There is more than one way to do it: (1.) split is a good choice. (2.) matching as well. (3.) substituting can be very powerful, because the right side of s'SearchPattern'EvaluateAndReplacePattern'eg; by means of the switches e (evaluate the right side) and g (global = again and again) can have any Perl code, including (4.) functions (subroutines); In (3.) after grabbing the kid I have to put it back into the row by means of $1; (in an evaluated substitution the last value is put back), otherwise it would not be found in (4.). In (5.) the kid is not found (only its count).