Macbook AirでPerlは動くか?

1,はじめに

突然ですが、皆様はPerlというプログラミング言語をご存知でしょうか?

高度な正規表現のエンジンを内蔵したテキスト処理に強い言語です。

とはいえ、もう現代の開発標準からすれば、数世代前の言語なのかもしれません。

行ってしまえば、過去の開発言語です。

しかし、歴史を踏まえ、言語仕様などが固まっており、破壊的な仕様変更が行なわれにくいと言えるはずです。

ちなみに、私は一番初めのWebアプリをPerlで作りました(Perl/CGIです。Mojoとかは使っていません)。

実は、それは今でも中学校の公式サイトの裏側で動いています。

数年ぶりに訪問し、中学生の頃に作ったTwitterもどきを見せてもらった時は驚きました。

これから大きなものをPerlで作ることはないと思うのですが、

私にとってPerlは、コードを書くことで他者から感謝される、そういう貴重な経験をさせてくれた言語です。

ま、青いといえばあれですが、動かせる環境だけは、欲しい言語です。

なお、筆者はPerl全くわかりません。

まさかり投げないで・・・

2,で、動くの?

とりあえず、Perlコマンドを打ってみます。

MacBook-Air:~ jskny$ perl -v
 This is perl 5, version 18, subversion 4 (v5.18.4) built for darwin-thread-multi-2level
 (with 2 registered patches, see perl -V for more detail)
 Copyright 1987-2013, Larry Wall
 Perl may be copied only under the terms of either the Artistic License or the
 GNU General Public License, which may be found in the Perl 5 source kit.
 Complete documentation for Perl, including FAQ lists, should be found on
 this system using "man perl" or "perldoc perl".  If you have access to the
 Internet, point your browser at http://www.perl.org/, the Perl Home Page.
 MacBook-Air:~ jskny$ 

あ、動きますねこれ。

前回、Gitを入れる際に開発ツールの導入を行ったので、それに付随していたのかな。

3,じゃんけんゲームを作ります

せっかくなので、Perlでじゃんけんするゲームを作成しましょう。

Vimで開発
Vimで開発

作った後に記事を書いているのですが、

Macで初のプログラミングは、SwiftではなくPerlになりましたね、これ。

ぼく、いけいけオサレエンジニアなんで。

# じゃんけんゲーム
# 0 : ぐー
# 1 : ちょき
# 2 : ぱー
#
# 2019/09/07
# jskny

use strict;
use warnings;
use utf8;

# コンピューターの手を返す
# retval : int (0-2)
sub CalcHandCPU {
 my @param = @_;
 return (int(rand(3)));
}


# 勝ち負け判定
# param1 : user hand (0-2)
# param2 : cpu hand (0-2)
# retval
#  0 : draw
#  1 : user win
#  2 : user lose
sub Judge {
 my @param = @_;

 # 神が作成した判定式を使用する
 # 以下のサイトを参考にした。
 # https://staku.designbits.jp/check-janken/

 my $result = ($param[0] + $param[1] + 3) % 3;
 return ($result);
}


# 情報通知
sub OutInfo {
 print "Select your hand.\n";
 print " 0 : gu-\n";
 print " 1 : tyoki\n";
 print " 2 : pa-\n";
 print "\n";
 print "if you end this game, you input e.\n";

 print " > ";
}

# 主処理
sub Main {
 my $userInput = "";
 my $cpuHand = 0;
 my $tmp = 0;

 OutInfo();
 while ($userInput ne "e") {
  $userInput = <STDIN>;
  chomp($userInput);


  $cpuHand = CalcHandCPU();
  $tmp = Judge($userInput, $cpuHand);

  print "Your input : " . $userInput . "\n";
  print "CPU hand : " . $cpuHand . "\n";

  print "Your : ";
  if ($tmp eq 0) {
    print "draw.\n";
  }
  elsif ($tmp eq 1) {
    print "win.\n";
  }
  elsif ($tmp eq 2) {
    print "lose\n";
  }

  print "\n";

  OutInfo();
 }

 print "see you !\n";
 return (0);
}


# 主処理呼び出し
Main();
exit(0); 

まぁ簡単なゲームですね。

Perlじゃんけんゲーム
Perl じゃんけんゲーム

ドヤァ(・A・)

ゲームが動いたで

4,参考サイト

じゃんけんの判定式として、以下の神様の頭脳を使わさせていただきました。感謝

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA