Link: http://www.perlmonks.org/?node_id=94007
my ต่างกับ local ตรงที่
my เป็นการสร้างตัวแปรใหม่ สำหรับ code block นั้น ๆ
แต่
local จะสร้างตัวแปรใหม่และเปลี่ยนค่าตัวแปร Global ให้ด้วย จนกว่าจะสิ้นสุด block นั้น ๆ
ตัวอย่าง ($::a = global variable)
$a = 3.14159;
{
local $a = 3;
print "In block, \$a = $a\n";
print "In block, \$::a = $::a\n";
}
print "Outside block, \$a = $a\n";
print "Outside block, \$::a = $::a\n";
# This outputs
In block, $a = 3
In block, $::a = 3
Outside block, $a = 3.14159
Outside block, $::a = 3.14159
$a = 3.14159;
{