http://www.perlmonks.org?node_id=378826


in reply to Or Operator

(It's me again.)

BTW, I got it to work with:
$page = $cgi->param("page") or $page = "login";

But this:
my $page = $cgi->param("page") or $page = "login";
Fails. Why? Is there something I can change to make it work?

Replies are listed 'Best First'.
Re^2: Or Operator
by ysth (Canon) on Jul 31, 2004 at 01:32 UTC
    my $page = $cgi->param("page") or $page = "login";
    fails because that second $page is really the global variable; the scope where "$page" refers to the my variable only starts on the following statement. use strict would have alerted you to this (unless you have an outer $page, which is not a good idea for keeping your code maintainable.)