Perlクラブスタッフブログ 💪

Perlクラブで活動するスタッフの日記

2022/07/29

SPVMでFizzBuzzしてみました!!!

どうも、Perlクラブの村上です!

夏真っ盛りですね 🏖

今月は SPVM の理解を助けるために実際に手を動かして、簡単なコード書いてみました。

"FizzBuzz"というテキスト処理やシェル芸なんかでよくみる問題に挑戦しました!

問題の内容は、「1から100までの整数のうち、3の倍数を"Fizz"、5の倍数を"Buzz"で、15の倍数の時は"FizzBuzz"に置換していく」というものです。

SPVMはPerlの文法がわかれば記述も容易で、Perlから呼び出して使うことが可能です。

一番シンプルな、if文3つでそれぞれ条件分岐させるやり方で難なく解けました!!

モジュール化には spvmdist が便利です。

興味がある方には 記述したコード を公開していますので参考にされてください!

ではでは〜 🌊

2022/06/25

SPVNの勉強中です 🏃

どうも、Perlクラブの村上です♪

だんだんと暑くなってきましたね 🍵

今月は SPVN の言語仕様、サンプルコードのリーディングを行ってました!

SPVN は木本さんがメインで開発されている、Perlライクなプログラミング言語です。

プログラミング言語の言語の開発ってすごく難しそうなイメージがしますね 🤔

Perlの感覚で柔軟な記述ができて、型指定などの厳格性をもたせることなどができるようです。

引き続きサンプルコード、ドキュメントなどを読み進めて勉強していきます! ✍

2022/05/25

Perl モジュールを公開する前準備

お久しぶりです、Perlクラブの村上です!

ゴールデンウィークが明け、五月病も抜けてきた今日この頃です 🍵

今月は CPAN に Perl モジュールを登録する準備を進めていきました!

CPAN は、有志の方々が作ったPerl の自作モジュールなんかを登録・公開するサーバーのことですね。

日々、無料で使わせていただいており、大感謝です 🙇 🙇

今回準備をしたといっても、アカウントを作成しただけです 😎

でも大きな一歩です!

やり方を簡単にまとめると、

  1. PAUSE にアクセスする
  2. "Request PAUSE account" からアカウント登録申請を送る
  3. 管理者から承認されるのを待つ

のような感じでした!

申請理由を英語で書く欄があって、そこが手間取りました。

「知人の開発を手伝ってモジュールを登録するため」という内容で短く書いて送ったら次の日には承認されておりました!

皆さんも、CPAN につくったモジュールを公開することを考えてみてもよいかと思います!!

2022/04/04

「Perl検定」がリリースされました〜!

お久しぶりです、Perlクラブの村上です! 西日本ではもう至るところで桜が満開になってきました♪

今週ついに 「Perlクラブ」にて「Perl検定」がリリースされました〜!!

以前ご紹介したように、「Perl検定」では Perlに関する様々な問題が掲載されており、4択クイズ形式の問題に挑戦することができます。

Perl に関して本やネットの記事などで断片的に得た知識はなかなか定着しづらいですが、クイズを通して振り返ることで記憶として残りやすくなるはずです!

Perl のようなプログラミング言語の学習は自分で何かを創作していく過程で徐々に身につけていくものではありますが、クイズのような、いつでもどこでも簡単にとりくめるものもオススメです〜!

僕も移動時間なんかに開いたりしています♪

よかったら「Perl検定」覗いてみてくださいね〜!

2022/01/26

Giblogにデプロイ機能が追加されました!

こんにちは、Perlクラブの村上です!

そして明けましておめでとうございます 🎉 今年もPerlクラブをよろしくお願いします 🙇

今回は、Giblogのバージョンアップの報告です!

まもなくGiblogはバージョン3.0 がリリースされます!

デプロイが機能が追加されるとのことで、早速試させていただきました!

現時点ではまだリリースされていませんが、こちらの開発用バージョン(2.01_02)からご確認いただけます!

以下、使い方です!

0. お手元のGiblogのバージョンをアップデートする

(3.0がリリース後に、正式に利用可能になります!)
 cpanm update Giblog 

1. deploy.pl というファイルをプロジェクトルートに用意し、デプロイ処理を記述します

2. 以下、手順よりコミット&プッシュを行う

  giblog build
  
  giblog save -m "コミットメッセージ"
  
  giblog publish origin master
  

3. deploy コマンドを実行して、deploy.pl に記述した処理を実行します

 giblog deploy 

※ また上記 2、3の手順を、以下のコマンドで一気に実行することも可能です

 giblog all -m "コミットメッセージ" origin master 

デプロイ処理も機能に加わり、より簡単にページを公開できるようになりました〜!!

みなさんもよければ3.0の機能について確認してみてください 💪💪💪

2021/11/21

デザイン変更しました!

こんにちは、Perlクラブの村上です!

今回は、Giblogの機能を用いてサイトのデザインの変更を行いました。

index 自動生成

今回は主に、トップページの更新を行いました。

Giblog には、ブログサイトを作成するための機能として、 new_blog というものがあります。

この機能を使うと、ブログサイトのプロトタイプが生成されます。

# ブログサイトのテンプレートを 'my_blog_site' という名前で作成
% giblog new_blog my_blog_site
% cd my_blog_site ; ls
README       giblog.conf  lib/         public/      serve.pl     templates/
# ウェブサイトの立ち上げ
% giblog serve

サイトの見出しになるトップページ (index.html) 更新の度に自動でつくられるようになります。

記事をエントリーに追加する度に、自動で過去7日分のエントリーが一覧表示されるようになります。

(この機能を知らなくて、手動でつくっていました... 笑)

ビルド処理は、"lib/Giblog/Command/build.pm" に定義されており、用途に応じてカスタマイズして使うこともできます。

ブログサイトを簡単につくる上で便利な機能が集まっているかと思います!

みなさんもよければ試してみてください!

2021/10/24

「Perl検定」の紹介!

こんにちは、Perlクラブの村上です!


今回は、Perlの知識を測定する目的で作られている「Perl検定」の紹介についてです。


「Perl検定」とはその名のとおり、Perlの言語仕様に関する知識(構文、文法など)を測定するための検定サイトです!


現在はまだサービスを開始しておらず、準備中になります。


自分のPerlに関する知識レベルがどんなものであるかを知る尺度としてや、勉強した内容の復習なんかに活用できそうですね〜!


プログラミングの言語の勉強として、公式のリファレンス読んだり、それをわかりやすく解説してくれている記事や本を手にすることがあるかと思います。


そうしたときになんとなく理解できたつもりになるんですが、なかなか復習するまでに至らないんですよねー。(私はw)


4択形式になっており、気軽に取り組めるのもよいですね!


いかに、いくつか問題を紹介させてもらいます!



【問】ハッシュ変数を宣言しているものはどれでしょうか?

【選択肢】

1. my $foo

2. my @bar

3. my %baz

4. my hoge

【解答】3

【解説】

「Perl基礎文法最速マスター」の「変数の宣言」 を確認してください。

ハッシュ変数は%で始めることで宣言できます。


【問】以下を実行すると何が表示されるでしょうか?

  print int(1.52)

【選択肢】

1. 1

2. 1.5

3. 1.6

4. 2

【解答】1

【解説】

int関数 - 小数から整数部を取り出すを確認してください。


【問】以下のプログラムを実行すると何が出力されますか?

  my $num = 1;
  my $result = 0;
  
  if ($num > 0 && $num < 10) {
    $result = 100;
  } else {
    $result = 200;
  }
  
  print($result);

【選択肢】

1. 0

2. 1

3. 100

4. 200

【解答】3

【解説】

「if文による条件分岐」 を確認してください。

数値の比較および、論理演算子がポイントになります。


【問】以下のプログラムを実行すると何が出力されますか?

  @str = qw/kyou mo genki da perl de genki!/;
  print $str[$#str] . "\n";

【選択肢】

1. "kyou"

2. "kyou mo genki da perl de genki!"

3. "" (何も表示されない)

4. "genki!"

【解答】4

【解説】'#$' は配列の最後の要素のインデクスを示す。


【問】以下のプログラムを実行すると何が出力されますか?

  @str = qw/kyou mo genki da perl de genki!/;
  $out .= shift @str;
  $out .= pop @str;
  print $out . "\n";

【選択肢】

1. "kyougenki!"

2. "kyoumo"

3. "genkide"

4. "genki!kyou"

【解答】1

【解説】shift は配列の最後の要素を取り出す。pop は配列の最初の要素を取り出す。


いかがでしたでしょうか!


ソースコードをみて、頭の中で動作を想像するときになって初めて「あれ?これってどうだっけ。。。」ってなることがあるんじゃないかなーと思います。


皆さんのPerl習得の助けになれば幸いです!


コンテンツ