Isso não é um problema com perl porque obviamente está imprimindo o 0x00:
perl -e 'print "\x50\xe5\xff\xff\xff\x7f\x00\x00"' | hd
00000000 50 e5 ff ff ff 7f 00 00 |P.......|
00000008
Eu queria experimentar a técnica NOP SLED. Peguei o sled e o shellcode em uma variável de ambiente e obtive seu endereço.
Então eu queria executar o programa vulnerável e como argumento usar esse endereço repetido,
o problema é que ele contém 0s (zeros): 0x00007fffffffe550
./program_vuln $(perl -e 'print "\x50\xe5\xff\xff\xff\x7f\x00\x00"')
O Perl não imprime os zeros e o endereçamento na pilha ficou tão confuso.