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

  • Shantanu Sood

    Shantanu Soo

    3 Kasım 2008
  • ShoSho

    ShoSho

    20 Ocak 2010
  • TheFlashCentre

    TheFlashCent

    22 Mayıs 2008