in reply to Reaped: Re: How to print out package code ?
in thread How to print out package code ?

open MODULE, "perldoc -m Session|" or die "Failed to open pipeline($!) +"; while (<MODULE>) { open(X,"> xxx_dump.txt")|| warn "Fail: ($!)"; print X $_; } close X; close S;
Unfortunatelly prints out "13695" ;/ What is wrong ?

Replies are listed 'Best First'.
Re^3: How to print out package code ?
by choroba (Cardinal) on Mar 18, 2013 at 21:20 UTC
    You are opening the file for each line, overwriting the previous output. Open it just once before entering the loop.
    لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
      Unfortunatelly, still doesn't work. Now, I am getting empty file ;/
      my @tab; open MODULE, "perldoc -m ModuleX|" or die "Failed to open pipeline +($!)"; open(X,"> xxx_dump.txt")|| warn "Fail: ($!)"; while (<MODULE>) { @tab = split; foreach $_ (@tab) { print X $_; } } close X; close MODULE;
      What is wrong ? Maybe perldoc -m ModuleX doesn't work with used modules ?
        Why did you introduce @tab and the inner loop? This works for me:
        open MODULE, "perldoc -m ModuleX |" or die "Failed to open pipeline($! +)"; open(X,"> xxx_dump.txt")|| warn "Fail: ($!)"; while (<MODULE>) { print X $_; } close X; close S;
        لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ