Sudarshan Raghavan wrote:
> 
> Sudarshan Raghavan wrote:
> >
> >             ($ref_to eq 'ARRAY') && do {
> >                 foreach my $arr_elem (@{$_}) {
> >                     $arr_elem =~ s/^\s+//;
> >                     $arr_elem =~ s/\s+$//;
> >                 }
> >                 last SWITCH;
> >             };
> >             ($ref_to eq 'HASH') && do {
> >                 foreach my $hash_val (%{$_}) {
> 
> oops, the above statement should be
> foreach my $hash_val (values (%{$_})) {
> 
> >                     $hash_val =~ s/^\s+//;
> >                     $hash_val =~ s/\s+$//;
> >                 }
> >                 last SWITCH;
> >             };

Actually the original will work.  When you modify a hash like that in a
foreach loop only the values but not the keys will be modified.

$ perl -le'
my %hash = ( "  one  " => "  1  ", "  two  " => "  2  " );
print "Before:";       
print ">$_<" for %hash;
s/^\s+//, s/\s+$// for %hash;
print "After:";        
print ">$_<" for %hash;
'
Before:
>  one  <
>  1  <
>  two  <
>  2  <
After:
>  one  <
>1<
>  two  <
>2<



John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to