or download this
If used numerically, yields the current value of the C errno variable,
+ or in other words, if a system or library call fails, it sets this v
+ariable. This means that the value of $! is meaningful only immediat
+ely after a failure: