Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Interleave STDIN and FILE IO

by kcott (Archbishop)
on Apr 10, 2014 at 05:06 UTC ( [id://1081755]=note: print w/replies, xml ) Need Help??


in reply to [SOLVED] Interleave STDIN and FILE IO

G'day Steve,

Welcome to the monastery.

Here's a barebones example of how you can achieve what you describe:

#!/usr/bin/env perl use strict; use warnings; use autodie; while (<STDIN>) { print; /^B (\S+)/ && read_input($1); } sub read_input { my ($file) = @_; open my $fh, '<', $file; while (<$fh>) { print; /^B (\S+)/ && read_input($1); } close $fh; return; }

Sample run (I added a 'pm_1081744_' prefix to your filenames; beyond this, the data is the same):

m m n n o o B pm_1081744_tst.bat B pm_1081744_tst.bat a b c B pm_1081744_tst2.bat z y x w 1 2 3 p p q q r r

So, I started wih the same STDIN input as you (m, n, o, B pm_1081744_tst.bat); the output is as you wanted it (abc from pm_1081744_tst.bat; then zyxw from pm_1081744_tst2.bat; then back to pm_1081744_tst.bat for the remaining 123); and, with all file data now read, reading again from STDIN (i.e. p, q, r).

I'll leave you to add custom input prompts and INFO messages.

-- Ken

Replies are listed 'Best First'.
Re^2: Interleave STDIN and FILE IO
by skorson (Initiate) on Apr 10, 2014 at 13:27 UTC
    Ken,

    Fantastic, that's what I was looking for. Much cleaner as well. It would seem then that I had issues with scope perhaps? The most significant change I see from you is the call to the subroutine which is a change of scope.

    Please accept my virtual alms.

    Cheers,

    -- Steve

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1081755]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (6)
As of 2024-04-19 06:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found