My critique is perfectly valid, thanks. His return value is what he needs to check, not $@ or $!. The reason he's getting nothing useful out of them is that nothing useful is being put into them. This is apparently because of the mingling of random parts of the documentation rather than reading them for comprehension.