After a brief review of Shell.pm it looks like a bug where the callee reference isn't being shifted off @_. The reason this works the first time around is that the method is AUTOLOADed and the callee has already been dealt with. If this hasn't already been patched by 5.8.0 I'll submit one to p5p later on today. In the mean time just use the procedural interface as it doesn't seem to have the same problem.
HTH