本当のエスケープシーケンスをPerlでまんまREP
PerlのEvalを使ったまんまREL(REPL)
rep.pl
#!/usr/bin/perl
#CTL+C と CTL+TERMをハンドリングしてエスケープシーケンスを戻す
local $SIG{INT} = sub { print "\e[m"; exit ;};
local $SIG{TERM} = sub { print "\e[m"; exit ;};
print( "\e[44;37;5m");
while($REP::read=<STDIN>) {
print("\e[47;30m");
#EVAL関数で評価結果とエラーを拾う
$REP::eval=eval($REP::read);
print("\e[m\n(\e[47;31;2m\e[5m$REP::eval\e[m)\n");
#以下がエラー発生時を拾って表示
print("\e[47;30m",$@) if ($@) ;
print("\e[44;37;5m");
}
$SIG{TERM}->();
本当のエスケープシーケンス使った結果のREP(ReadEvalPrint)例
rep.pl
#!/usr/bin/perl
#CTL+C と CTL+TERMをハンドリングしてエスケープシーケンスを戻す
local $SIG{INT} = sub { print "\e[m"; exit ;};
local $SIG{TERM} = sub { print "\e[m"; exit ;};
print( "\e[44;37;5m");
while($REP::read=<STDIN>) {
print("\e[47;30m");
#EVAL関数で評価結果とエラーを拾う
$REP::eval=eval($REP::read);
print("\e[m\n(\e[47;31;2m\e[5m$REP::eval\e[m)\n");
#以下がエラー発生時を拾って表示
print("\e[47;30m",$@) if ($@) ;
print("\e[44;37;5m");
}
$SIG{TERM}->();
エスケープシーケンスは以下のサイトをまんま参考に
Author And Source
この問題について(本当のエスケープシーケンスをPerlでまんまREP), 我々は、より多くの情報をここで見つけました https://qiita.com/engbJapan/items/5a5fe5a5951bd6e57019著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .