LoginSignup
5
2

More than 3 years have passed since last update.

Perlで湯婆婆を実装してみる

Posted at

はじめに

@Nemesisさんの書かれた記事『Javaで湯婆婆を実装してみる』に触発された記事が多数投稿されていますが、なんでか Perl はないようなので実装してみました。

コード

yubaba.pl
#!/usr/bin/perl
use strict;
use warnings;
use Encode;

my $name;
do {
  print "契約書だよ。そこに名前を書きな。\n";
  $name = <STDIN>;
  chomp($name) if defined($name);
} while !defined($name) || $name eq "";
print "フーン。$nameというのかい。贅沢な名だね。\n";
my $newName = encode('utf-8', substr(decode('utf-8', $name), rand(length(decode('utf-8', $name))), 1));
print "今からお前の名は$newNameだ。いいかい、$newNameだよ。分かったら返事をするんだ、$newName!!\n";

Wandboxで実行

妥協したところ

名前の入力を

  $name = <STDIN>;

として EOF を入力すると $name の内容が未定義となり、そのまま処理を続けるとみっともない警告がでるだけで湯婆婆がクラッシュしてくれないので不本意ながら有効な名前が入力されるまで繰り返すようしています。まあ、Wandbox で実行するとその内湯婆婆は Kill されるので良しとしましょう。


契約書だよ。そこに名前を書きな。
契約書だよ。そこに名前を書きな。
契約書だよ。そこに名前を書きな。
契約書だよ。そこに名前を書きな。
契約書だよ。そこに名前を書きな。
~ 略 ~
契約書だよ。そこに名前を書きな。
契約書だよ。そこ�
Killed

Wandboxで実行

おわりに

おわりです。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2