in reply to Can we do without auxiliary variable here?
What do you want from the following?
prefix_print("A\nB"); prefix_print("C\n");
Update: I might do something like the following:
use strict; use warnings; my $prefix = 'P'; { my $first = 1; sub prefix_print { print $prefix if($first); print map { join($prefix, split(/^/,$_,-1)); } @_; $first = $_[-1] =~ m/\n$/; } } prefix_print("A\nB","C\n"); prefix_print("A\nB"); prefix_print("C\n");
Which gives:
PA PBC PA PBC
Update 2: then, after receiving the inevitable bug report, I might try:
use strict; use warnings; my $prefix = 'P'; { my $first = 1; sub prefix_print { do { print $prefix if($first); $first = ($_ =~ m/\n$/); print join($prefix, split(/^/,$_,-1)); } foreach @_; } } prefix_print(''); prefix_print("y"); prefix_print("A\nB","C\n"); prefix_print("A\nB"); prefix_print("C\n"); prefix_print("X","Y","Z","\n","A","B","C"); prefix_print("\n"); prefix_print("\n"); prefix_print(''); prefix_print(); prefix_print("the end\n");
Which gives:
PyA PBC PA PBC PXYZ PABC P Pthe end
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Can we do without auxiliary variable here?
by ikegami (Patriarch) on Feb 28, 2011 at 18:02 UTC |