> Dan Muey wrote:
> > I have this subroutine and it does what I need ::
> >
> > print rmgtlt($var);
> >
> > sub rmgtlt {
> >
> > $_[0] =~ s/^\<|\>$|\n|\r|\s$//g;
> > return $_[0];
> > }
> >
> > Is there a way to so the substitution and return the result in one 
> > line?
> >
> > Like ::
> >
> > sub rmgtlt {
> > return ??? $_[0] =~ s/^\<|\>$|\n|\r|\s$//g;
> > }
> >
> > I tried using parenthesis and using list context ::
> > return my($q) = $_[0] =~ s/(^\<|\>$|\n|\r|\s$)//g; }
> >
> > And you might have figured it returned the number of 
> elements matched 
> > and not the newly fixed up variable contentes.
> >
> > Is there a way to do this?
> > I know I must be missing something obvious , thanks for any 
> guidance!
> 
> Hi Dan.
> 
> How about:
> 
>     sub rmgtlt { $_[0] =~ s/^\<|\>$|\n|\r|\s$//g; return $_[0]; }

Ha Ha ! That is a good one, perl humor gotta love it.

> 
> ;-D
> 
> Seriously though, there's no way to do it apart from 
> something like that since, as you've discovered, the 
> substitute operator returns the number of substitutions it 
> has performed - the modified string isn't available without 
> using it explicitly. You can make it a little smaller though: 
> the regex could be slightly shorter and the 'return' is 
> unnecessary on the last line of the routine.
> 
>     sub rmgtlt { $_[0] =~ s/^<|[\n\r]|[>\s]$//g; $_[0] }
> 
> Did you realise though, that since the substitution is 
> changing the element of the @_ array, the actual parameter in 
> the call will be modified, so that
> 
>     my $email = '<[EMAIL PROTECTED]>';
>     rmgtlt ($email);
> 
> will edit $email for you? There's no need to do
> 
>     $email = rmgtlt ($email);
> 
> as you may be thinking. Also, the parameter must be an
> lvalue. If you call the routine with a constant string as its 
> parameter it will fail because the substitution cannot be 
> done on a constant.

Ah yes, I can see that, thank you for for that info, I was just doing a 
perldoc -f return so that all seals the deal for me then.

Thanks everyone for your time.

Dan

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

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

Reply via email to