LINUX.ORG.RU

История изменений

Исправление vtVitus, (текущая версия) :

По коду всё ок и должно работать как надо. То есть ты о чём-то не договариваешь +).

vitus@vitus-home:~$ cat /tmp/ll.pl
#!/usr/bin/perl
use strict;
use utf8;
use locale;
use warnings;
binmode(STDOUT,':utf8');
binmode(STDIN,':utf8');

open my $in, '<:encoding(UTF-8)', '/tmp/in.txt' or die('error');

my $ff=<$in>;
my $length_sv = 9;
open my $out, '>>:encoding(UTF-8)', "/tmp/file.txt" or warn "Could not open file - $!" and exit(1);

my $subc = substr($ff, 0, $length_sv);

my $string = sprintf "| %-5s | %-1s | %-9s | %-${length_sv}s | %-11s | %-10s|\n","ыфыф","ыфыфыф","ыфыфыфыф","$subc","ыфыфыфы","фыфыфыф";

print $string;
print $out $string;

close $out;
close $in;
vitus@vitus-home:~$ echo -n "Тест Mark" > /tmp/in.txt
vitus@vitus-home:~$ /tmp/ll.pl
| ыфыф  | ыфыфыф | ыфыфыфыф  | Тест Mark | ыфыфыфы     | фыфыфыф   |
vitus@vitus-home:~$ cat /tmp/file.txt 
| ыфыф  | ыфыфыф | ыфыфыфыф  | Тест Mark | ыфыфыфы     | фыфыфыф   |

Исходная версия vtVitus, :

По коду всё ок и должно работать как надо. То есть ты о чём-то не договариваешь +).

vitus@vitus-home:~$ cat /tmp/ll.pl
#!/usr/bin/perl
use strict;
use utf8;
use locale;
use warnings;
binmode(STDOUT,':utf8');
binmode(STDIN,':utf8');

open my $in, '<:encoding(UTF-8)', '/tmp/in.txt' or die('error');

my $ff=<$in>;
my $length_sv = 9;
open my $out, '>>:encoding(UTF-8)', "/tmp/file.txt" or warn "Could not open file - $!" and exit(1);

my $subc = substr($ff, 0, $length_sv);

my $string = sprintf "| %-5s | %-1s | %-9s | %-${length_sv}s | %-11s | %-10s|\n","ыфыф","ыфыфыф","ыфыфыфыф","$subc","ыфыфыфы","фыфыфыф";

print $string;
print $out $string;

close $out;
vitus@vitus-home:~$ echo -n "Тест Mark" > /tmp/in.txt
vitus@vitus-home:~$ /tmp/ll.pl
| ыфыф  | ыфыфыф | ыфыфыфыф  | Тест Mark | ыфыфыфы     | фыфыфыф   |
vitus@vitus-home:~$ cat /tmp/file.txt 
| ыфыф  | ыфыфыф | ыфыфыфыф  | Тест Mark | ыфыфыфы     | фыфыфыф   |