So, wie du das geschrieben hast, wird nur getestet, ob der Schalter -x aktiv ist.
Wenn du
schreibst, wie es florg bereits geschrieben hat, wird durch den Doppelpunkt dem script gesagt, das nach dem Schalter -x noch ein Argument erwartet wird.
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
http://perl-tutor.de