getc FILEHANDLE
getc

傳回附加至 FILEHANDLE 的輸入檔案中的下一個字元,或是在檔案結尾或是有錯誤時傳回未定義的值(後者會設定 $!)。如果省略 FILEHANDLE,會從 STDIN 讀取。這並不特別有效率。不過,它無法自行用於擷取單一字元而不等使用者按下 Enter。對於這種情況,請嘗試更類似下列的作法

if ($BSD_STYLE) {
    system "stty cbreak </dev/tty >/dev/tty 2>&1";
}
else {
    system "stty", '-icanon', 'eol', "\001";
}

my $key = getc(STDIN);

if ($BSD_STYLE) {
    system "stty -cbreak </dev/tty >/dev/tty 2>&1";
}
else {
    system 'stty', 'icanon', 'eol', '^@'; # ASCII NUL
}
print "\n";

是否應設定 $BSD_STYLE 的判定留待讀者練習。

POSIX::getattr 函式可以在宣稱符合 POSIX 的系統上更具可移植性地執行此動作。另請參閱 CPAN 上的 Term::ReadKey 模組。