Я пытаюсь перенаправить STDOUT и STDERR в какой-то файл. В какой-то степени я добился успеха. Но я не могу понять одну вещь в приведенном ниже коде.не удалось создать ошибку и перенаправить ее в файл в perl
#!/usr/bin/perl
open (STDOUT,">/var/tmp/outfile") or die "problem : $!";
open (STDERR,">>/var/tmp/outfile") or die "problem : $!";
print "$_\n" foreach (1..10);
sdsdf; # buggy line inserted wantedly
я вставил последнюю строку в предположении, что Perl будет разлетом ошибки и будет перенаправлен в файл, но его не происходит. Моя программа не распространяется на любую ошибку на экране или в outfile. Пожалуйста, помогите мне понять это поведение.
@Krishna: Вопрос объясняет, почему он добавил его: «Я вставил последнюю строку в предположении, что Perl будет разлетом ошибки и будет перенаправлен в файл, но его не происходит.» Он предназначен для тестирования STDOUT, создавая ошибку времени выполнения (... что было бы лучше сделать с помощью 'warn' или' die'). Использование 'strict' будет противодействовать этой цели, так как это предотвратит запуск программы вообще. –