Você pode tentar:
open my $fh, '>', 'test.txt'
or die "$!";
binmode $fh;
print $fh "QWERTY\n";
Você só vê $
em vim
porque, por padrão, listchars
para o fim da linha contém apenas $
. De :help listchars
:
'listchars' 'lcs' string (default "eol:$")
global
{not in Vi}
Strings to use in 'list' mode and for the :list command. It is a
comma separated list of string settings.
lcs-eol
eol:c Character to show at the end of each line. When
omitted, there is no extra character at the end of the
line.
Para saber o término real da linha, você pode tentar file
ou cat
:
$ file test.txt
test.txt: ASCII text, with CRLF line terminators
$ cat -e test.txt
QWERTY^M$