http://qs1969.pair.com?node_id=726408


in reply to Re: shift doesnt shift
in thread shift doesnt shift

$@ is empty. Im just using the name of the command line arg to read in a file of data. Replacing || with or didnt work. Like i said, the same code works in a different script. What else could cause a shift to die?

TIA. Joe.

Replies are listed 'Best First'.
Re^3: shift doesnt shift
by Corion (Patriarch) on Nov 27, 2008 at 13:56 UTC

    We need to see more code.

Re^3: shift doesnt shift
by SuicideJunkie (Vicar) on Nov 27, 2008 at 14:03 UTC
    You wrote: X or Y
    1) Y is evaluated when X is false
    2) X is empty (aka undef, aka false)
    1+2=3) Therefore Y (the die) is performed.

    So, what is the problem here? It is doing exactly what you told it to. If you want it to die on some other condition than the shift giving 0/undef/''/etc, then you need to specify that condition in your code.

    Try specifying what to shift: $var = shift @array to ensure you're shifting the right array.