SORU
20 EYLÜL 2008, CUMARTESİ


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
20 EYLÜL 2008, CUMARTESİ


(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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jesiel santos

    jesiel santo

    15 Ocak 2009
  • NightShader1

    NightShader1

    25 Temmuz 2006
  • FusioNGamiing

    FusioNGamiin

    10 Temmuz 2007