Alex Gill wrote: : My question is: : How can the 'for' loop within bases() output a list for 'print' : as invoked in the last line of code?
It can't. You'll have to wait until the loop finishes unless you print directly from the loop which is less robust. my @powers; push @powers, 2 ** $_ for 0 .. 7; print bases( @powers ); sub bases { my @bases; foreach my $base (@_) { push @bases, sprintf( '%08b', $base ) . sprintf( '%4d', $base ) . sprintf( '%4o', $base ) . sprintf( '%4X', $base ) . "\n"; } return @bases; } To save some time you could pass a reference to @powers. print bases( [EMAIL PROTECTED] ); sub bases { my $powers_ref = shift; my @bases; foreach my $base ( @$powers_ref ) { push @bases, sprintf( '%08b', $base ) . sprintf( '%4d', $base ) . sprintf( '%4o', $base ) . sprintf( '%4X', $base ) . "\n"; } return @bases; } If you understand what it does, map() can compact things. sub bases { my $powers_ref = shift; return map { sprintf( '%08b', $_ ) . sprintf( '%4d', $_ ) . sprintf( '%4o', $_ ) . sprintf( '%4X', $_ ) . "\n"; } @$powers_ref; } HTH, Charles K. Clarkson -- Mobile Homes Specialist Free Market Advocate Web Programmer 254 968-8328 Don't tread on my bandwidth. Trim your posts. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>