Nasıl stderr stdout ve çıkış kodu bir anda, Perl yakalamak mı?
Perl harici bir işlem, onun stderr yakalama VE işlem çıkış kodu stdout mümkün mü?
Örneğin backticks stdout almak için kullanabilir, bunlar IPC kombinasyonları yapmak mümkün gibi görünüyor::Open3 yakalama çıkışları ve sistem() çıkış kodları almak için.
Nasıl stderr stdout ve çıkış tek seferde kodu yakalamayı düşünüyorsunuz?
CEVAP
(Güncelleme: IO için API güncelleme::CaptureOutput bu daha da kolay hale getirmek için.)
Bunu yapmak için çeşitli yollar vardır. Burada bir seçenek, IO::CaptureOutput modülü kullanarak:
use IO::CaptureOutput qw/capture_exec/;
my ($stdout, $stderr, $success, $exit_code) = capture_exec( @cmd );
Ayrıca daha genel bir çekim vardır CaptureOutput bu capture_exec() işlevi, ama IO:: () bunu da Perl çıkışı veya harici program çıktısını yakalamak için kullanılabilir fonksiyonu. Eğer bazı Perl modülü bazı harici program kullanımı olursa, hala çıktı.
Ayrıca sadece STDOUT ve STDERR (ya da onları birleştirme) yakalamak yerine IPC kullanarak tek bir yaklaşım hatırlamak gerekir::Open3 Perl çıkış yakalamak için harici programlar ve diğer modülleri için.
Nasıl ve bash ile bir dosya için hem s...
Nasıl boru stderr ve stdout değil mi?...
Nasıl çıkış kodu belirtin bir konsol u...
Nasıl birçok alt işlemler ve çıkış kod...
Nasıl hem stdout Yönlendirme ve bir do...