in reply to Recieving lists as arguments

When you call a subroutine, all the arguments passed to it are in the special perl vaiable @_. When you call:
@pictures = shift(); # broken
@_ is shifts implied argument (since you didn't supply an argument to shift explicitly). Shift removes and returns the first element of an array. To get the code to work the way you want it to, replace with:
@pictures = @_;