in reply to "or die" versus "|| die"
In your example it doesn't matter. One binds more tightly than the other, is the only real difference -- well, that and readablilty. || binds tighter. So, if you want to die after an assignment use or:
And if you want a default value, use ||my $foo = $bar->fetch('baz') or die "something went wrong\n";
my $foo = $bar->fetch('baz') || 'default';