Я бегу perl из golang и читаю этот пост и получил ответ, где я это сделал:
package main
import (
"fmt"
"io"
"os"
"os/exec"
)
func main() {
subProcess := exec.Command("perl", "./test.pl")
stdin, err := subProcess.StdinPipe()
var out bytes.Buffer
subProcess.Stdout = &out
subProcess.Stderr = os.Stderr
if err = subProcess.Start(); err != nil {
fmt.Println("An error occured: ", err)
}
io.WriteString(stdin, "4\n")
subProcess.Wait()
fmt.Println(out.String())
}
Что мне написать в perl код для доступа к стандартному вводу? Я пробовал это:
# usr/bin/perl
my $val = $ARGV[0];
print $val;
РЕДАКТИРОВАТЬ: я пытался использовать te <>
, но он сказал
Завершение по сигналу SIGINT (2)
#! /usr/bin/perl
my $test = <STDIN>;
chomp $test;
print $test;
Но безрезультатно.