http://qs321.pair.com?node_id=729698


in reply to Re^3: my @ARGV
in thread Little annoying mistakes ... of others

After being told to use strict and declare everything with my, a beginner will go out and do just that. Declare everything with my
Rather than telling them to 'declare everything with my', it would be more correct to simply say 'declare all of your variables'.
Then provide an example, such as:

It reminds me of pre-school; my $lollypop is all MINE! Nobody else can decrement it.
I'm sharing my blocks, so they are really our @blocks; now. Everybody in the room can push and shift them.
And my friend Perl is sharing his @ARGV with me. Look; he put a '-help' behind the first door, how cute.

The point being that variables, like toys, only need to be created once. The people you are sharing with don't need to buy/declare it, because you did that already.
Ownership and sharing are things we learned in kindergarten (hopefully!). Once the connection is made, it should be pretty natural.