in reply to (jeffa) Re: Collecting all values with shift
in thread [untitled node, ID 193991]
Notice how after unsafe sub has been called that @words has changed. If that's not what you're expecting, it can sometimes give you a shock. So unless the sub is very trivial, or you specifically do intend to amend the caller var(s), make sure you make a copy to play with in the sub.#!/usr/bin/perl -w use strict; my @words = ('These','are','words',"\n"); print "Original: @words"; safesub(@words); print "After safe sub: @words"; unsafesub(@words); print "After unsafe sub: @words"; exit(0); sub safesub { print "safesub to uppercase: "; my @uppercasewords = @_; for (@uppercasewords) { tr/a-z/A-Z/; } print "@uppercasewords"; } sub unsafesub { print "unsafesub to uppercase: "; for (@_) { tr/a-z/A-Z/; } print "@_"; } # output Original: These are words safesub to uppercase: THESE ARE WORDS After safe sub: These are words unsafesub to uppercase: THESE ARE WORDS After unsafe sub: THESE ARE WORDS
.02
cLive ;-)
--
seek(JOB,$$LA,0);
|
|---|