in reply to Using Perl's open() to investigate bash login environment

> Apparently bash behaves differently, when invoked this way on Linux.

I'm surprised it works in Cygwin. Reading man bash shows that you should probably use

bash -c 'command builtin declare -p -F' # ~~

> seeing shell metacharacters in the open string would have caused perl to automatically invoke a shell

Yes, it causes perl to invoke a shell. But "a shell" is /bin/sh on Linux, not bash (on some systems, /bin/sh is bash in sh compatibility mode, but e.g. on Ubuntu, /bin/sh is /bin/dash).

map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]