Domanda

Sto cercando di porto uno script Perl sopra da Unix a Windows, ma sto avendo un momento quasi impossibile farla funzionare a causa dei tubi che si biforcano non supportati nella funzione Open. Ecco il codice:

sub p4_get_file_content {
    my $filespec = shift;
    return 'Content placeholder!' if ($options{'dry-run'});
    debug("p4_get_file_content: $filespec\n");
    local *P4_OUTPUT;
    local $/ = undef;
    my $pid = open(P4_OUTPUT, "-|");
    die "Fork failed: $!" unless defined $pid;
    if ($pid == 0) { # child
        my $p4 = p4_init();
        my $result = undef;
        $result = $p4->Run('print', $filespec);
        die $p4->Errors() if $p4->ErrorCount();
        if (ref $result eq 'ARRAY') {
            for (my $i = 1; $i < @$result; $i++) {
                print $result->[$i];
            }
        }
        $p4->Disconnect();
        exit 0;
    }
    my $content = <P4_OUTPUT>;
    close(P4_OUTPUT) or die "Close failed: ($?) $!";
    return $content;
}

L'errore è:

'-' is not recognized as an internal or external command,
operable program or batch file.

Qualcuno sa come fare questo lavoro? Grazie!

Mike

È stato utile?

Soluzione

Lo so che non è una risposta diretta alla tua domanda, ma sembra che si sta script qualcosa in cima Perforce in Perl? Se è così si potrebbe trovare una libreria esistente fa ciò che si vuole già e risparmiare un sacco di mal di testa, o almeno si dà alcuni esempi di codice su cui lavorare.

Ad esempio:

Modifica : Ora che so quello che stai facendo Sto indovinando si sta cercando di porto p42svn a Windows, o meglio renderlo compatibile con Windows, almeno. Vedere questa discussione per una discussione di questo problema esatto. La raccomandazione (non testato) è di provare gli esempi di codice riportati in http://perldoc.perl.org /perlfork.html nella sezione " pipe verso fork open () non ancora implementato " per creare in modo esplicito il tubo al posto.

Altri suggerimenti

Non sta andando a lavorare come-è. Avrete bisogno di trovare un altro metodo per realizzare quello che sta facendo. Non sembra che ci sia che la masterizzazione di un bisogno per la forcella-pipe, ma è difficile dire da quando io non so quello che un p4 è e un sacco di codice si sta perdendo all'interpretazione parentesi angolare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top