my ($in) = @_;
####
#!/usr/local/bin/perl
use Devel::Peek 'Dump';
sub foo {
# this will create a new variable $s and copy first argument's contents right?
my ($s) = @_;
print "Dump inside trim():\n";
print "\$_[0] (this one is infact a 'synonym' to the actual variable; not it's copy :-) :\n";
Dump($_[0]);print"\n";
print "\$s (this is a copy of the 1-st argument:\n";
Dump($s);print"\n";
}
sub bar(\$) {
# this will create a new variable $s and copy first argument's contents as well,
# however, it's much faster here compred to foo() since in this case only
# a reference to the actual variable is copied, not the actual variable's
# contents.
my ($s) = @_;
print "Dump inside bar(\\\$):\n";
print "\$_[0]:\n";
Dump($_[0]);print"\n";
print "\$s (this is a copy of the 1-st argument, which is nothing more but a reference..):\n";
Dump($s);print"\n";
}
$s = "some text here ";
print "Dump before:\n";
Dump($s);print"\n";
foo($s);
bar($s);
print "Dump after:\n";
Dump($s);print"\n";
####
Dump before:
SV = PV(0xf0c44) at 0xfe99c
REFCNT = 1
FLAGS = (POK,pPOK)
PV = 0xf7560 "some text here "\0
CUR = 15
LEN = 16
Dump inside trim():
$_[0] (this one is infact a 'synonym' to the actual variable; not it's copy :-) :
SV = PV(0xf0c44) at 0xfe99c
REFCNT = 1
FLAGS = (POK,pPOK)
PV = 0xf7560 "some text here "\0
CUR = 15
LEN = 16
$s (this is a copy of the 1-st argument:
SV = PV(0xf0c98) at 0xfe9c0
REFCNT = 1
FLAGS = (PADBUSY,PADMY,POK,pPOK)
PV = 0xf7540 "some text here "\0
CUR = 15
LEN = 16
Dump inside bar(\$):
$_[0]:
SV = RV(0x11581c) at 0xf096c
REFCNT = 1
FLAGS = (ROK)
RV = 0xfe99c
SV = PV(0xf0c44) at 0xfe99c
REFCNT = 3
FLAGS = (POK,pPOK)
PV = 0xf7560 "some text here "\0
CUR = 15
LEN = 16
$s (this is a copy of the 1-st argument, which is nothing more but a reference..):
SV = RV(0x115828) at 0x1164b0
REFCNT = 1
FLAGS = (PADBUSY,PADMY,ROK)
RV = 0xfe99c
SV = PV(0xf0c44) at 0xfe99c
REFCNT = 3
FLAGS = (POK,pPOK)
PV = 0xf7560 "some text here "\0
CUR = 15
LEN = 16
Dump after:
SV = PV(0xf0c44) at 0xfe99c
REFCNT = 1
FLAGS = (POK,pPOK)
PV = 0xf7560 "some text here "\0
CUR = 15
LEN = 16