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
In reply to Re: Interleave STDIN and FILE IO
by kcott
in thread [SOLVED] Interleave STDIN and FILE IO
by skorson
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |