terminating fifo in perl

Discussion in 'Perl Misc' started by Peng Yu, Dec 6, 2012.

  1. Peng Yu

    Peng Yu Guest

    Hi,

    Calling main.sh will hang. I think that this is related with the fifo.
    Does anybody know a way to make the code finish without hanging?
    Thanks!

    ~/linux/bin/xplat/src/coreutils/backup/headbody/perl/fifo/main$ cat
    main.sh
    #!/usr/bin/env bash

    rm -rf head body
    mkfifo head body
    seq 10 | ../headbody.pl head body &
    cat head body &
    wait

    ~/linux/bin/xplat/src/coreutils/backup/headbody/perl/fifo/main$ cat ../
    headbody.pl
    #!/usr/bin/env perl

    use strict;
    use warnings;

    #use FindBin;
    #use lib "$FindBin::Bin/.";

    open(HEAD, '>', $ARGV[0]) or die "cannot to open $ARGV[0] $!";
    open(BODY, '>', $ARGV[1]) or die "cannot to open $ARGV[0] $!";

    my $head = <STDIN>;
    print HEAD $head;
    close(HEAD) or die "cannot to close $ARGV[0] $!";

    print STDERR "head";

    while(<STDIN>) {
    print BODY;
    }
    close(BODY) or die "cannot to close $ARGV[1] $!";

    print STDERR "body";



    --
    Regards,
    Peng
     
    Peng Yu, Dec 6, 2012
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.

Share This Page