

    use Win32::Pipe;


        ####
        #   You may notice that named pipe names are case INsensitive!
        ####

    $PipeName = "\\\\.\\pipe\\TEST this LoNG Named Pipe!";

    print "I am falling asleep for few seconds, so that we give time\nFor the server to get up and running.\n";
    sleep(4);
    print "\nOpening a pipe ...\n";



    if ($Pipe = new Win32::Pipe($PipeName)){
        print "\n\nPipe has been opened, writing data to it...\n";
        print "-------------------------------------------\n";
        $iFlag2 = 1;
        $Pipe->Write( "\n" . Win32::Pipe::Credit() . "\n\n");
        while($iFlag2){
            print "\nCommands:\n";
            print "  FILE:xxxxx  Dumps the file xxxxx.\n";
            print "  Credit      Dumps the credit screen.\n";
            print "  Quit        Quits this client (server remains running).\n";
            print "  Exit        Exits both client and server.\n";
            print "  -----------------------------------------\n";

            $In = <STDIN>;
            chop($In);

            if (($File = $In) =~ s/^file:(.*)/$1/i){
                if (-s $File){
                    if (open(FILE, "< $File")){
                        while ($File = <FILE>){
                            $In .= $File;
                        };
                        close(FILE);
                        undef $File;
                    }
                }
            }
            if($In =~ /^credit$/i){
                $In = "\n" . Win32::Pipe::Credit() . "\n\n";
            }

            $iFlag2 = $Pipe->Write("$In");
            if($In =~ /^(exit|quit)$/i){
                print "\nATTENTION: Closing due to user request.\n";
                $iFlag2 = 0;
            }

            undef $In;

        }
        $Pipe->Close();
    }else{
        ($Error, $ErrorText) = Win32::Pipe::Error();
        print "Error:$Error \"$ErrorText\"\n";
        sleep(4);
    }



