Frage

Ich versuche, in dem Hafen einen Perl-Skript über von Unix auf Windows aber eine nahezu unmöglich Zeit habe immer es aufgrund der nicht unterstützten Forking Rohre in der offenen Funktion zu arbeiten. Hier ist der Code:

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;
}

Der Fehler ist:

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

Wer weiß, wie diese Arbeit zu machen? Dank!

Mike

War es hilfreich?

Lösung

Ich weiß, es ist nicht eine direkte Antwort auf Ihre Frage, aber es sieht aus wie Sie etwas auf der Perforce in Perl sind Scripting? Wenn dies der Fall könnten Sie eine vorhandene Bibliothek finden tut, was Sie bereits und sich eine Menge Kopfschmerzen ersparen, oder zumindest geben Ihnen einige Beispiel-Code aus zu arbeiten.

Zum Beispiel:

Bearbeiten : Nun, da ich weiß, was du tust, ich vermute, Sie versuchen zu Port p42svn auf Windows, oder besser gesagt mit Windows zumindest kompatibel machen. Siehe dieses Thema für eine Diskussion dieser genauen Frage. Die Empfehlung (nicht getestet) ist die Codebeispiele in aufgeführt, um zu versuchen http://perldoc.perl.org /perlfork.html unter " Rohr Forking open () noch nicht implementiert " anstatt das Rohr explizit erstellen.

Andere Tipps

Es wird nicht funktionieren, wie sie ist. Sie müssen eine andere Methode finden, um zu erreichen, was es tut. Es sieht nicht wie es ist, dass ein Bedarf an der Gabel-Rohr brennt, aber es ist schwer zu sagen, da ich nicht weiß, was ein p4 ist und eine Menge Code ist Winkel Interpretation verloren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top