in reply to Fatal + <FILE> = only once warning

That's quite alright, because your call to open() has been replaced by the following code, and that symbol "A" is no longer there. So, yes, that "A" in open() call is not counted.

sub (*;$@) { local($", $!) = (', ', 0); if (@_ == 1) { return CORE::open($_[0]) || croak "Can't open(@_): $!"; } elsif (@_ == 2) { return CORE::open($_[0], $_[1]) || croak "Can't open(@_): $!"; } elsif (@_ == 3) { return CORE::open($_[0], $_[1], @_[2..$#_]) || croak "Can't op +en(@_): $!"; } die "open(@_): Do not expect to get ", scalar @_, " arguments"; }