Perl

Mojoliciousで文字化けが起こった時の対処法2つ

PerlのMVSフレームワーク「Mojolicious」を使っていて、$c->renderでHTMLを表示した時に日本語が文字化けしたので、その対処法を2つ紹介していきます。 そもそもPerlで文字化けが起こる原因とは? そもそも、Perlで文字化けが起こる原因とは何でしょうか? …

PerlのDBIで新規レコードを作成(INSERT)した時にレコードのIDを取得する方法

PerlのDBIでINSERT処理をした時に、新たに作成したレコードのIDを取得したい時がある。 INSERTしたレコードのIDを取得する方法 もし、あなたがDBI::mysqlのモジュールを使っている場合は、以下のように$sth->{mysql_insertid}を使えば新規レコードのIDを取得…

Mojoliciousで「[error] Role::Tiny 2.000001+ is required for roles」のエラーが出た時の対処法

PerlのMVCフレームワーク「mojolicious」を触っている時に、以下のエラーが発生した。 [error] Role::Tiny 2.000001+ is required for roles 上記のエラーは、with_rolesメソッドを使おうとする時に発生したものだが、解決策はRole::Tinyというモジュールを…

perlで正規表現で文字列を置換したり、新しい変数に格納する方法

Perlを使っている時に、正規表現にマッチした文字列を新しい文字列に直したり(置換)、その置換した文字列を新しい変数に格納したい時がある。 Perlで正規表現にマッチした所を置換する方法 Perlで正規表現にマッチした所を置換するためには、以下のようにす…

perl(Mojolicious)をレンタルサーバーXserverを使って公開する手順まとめ

perlのMVCフレームワーク「Mojolicious」をレンタルサーバーのXserverを使って公開する方法を紹介していきます。 基本的には、WEBアプリはVPSやAWSのサーバーを借りて運用すべきですが、個人の遊びとして格安のレンタルサーバーを使いたい場合があります。 …

perlで「Can't locate Sample/Module.pm in @INC」と言うエラーが起こる原因と対処法3つ

perlを扱っていると、よく以下のようなエラーが出ることがあります。 Can't locate Sample/Module.pm in @INC 今回は、このエラーの原因と「これをやったら解決するよ」と言う対策法を紹介していきます。 Can't locate Sample/Module.pm in @INCの原因とは?…

perlでファイルの中身を全て読み込みたい時の方法

perlを使っている時に、ファイルの全ての内容を変数に格納したい時がある。例えば、こんな感じで。 my $data = read_file; 今回は、そんな方法を紹介していくよ。 ファイルの全ての内容を変数に格納する方法 結論から言うと、以下のように書けばファイルの中…

perlでファイルの読み込みとか作成とか削除のまとめ

perlでファイル操作をする方法をまとめていきます。 なるべく分かりやすさ重視で説明するので、厳密には違うと言う部分が多々あるかと思いますが、詳細は公式ドキュメントをみてください。 perlでファイルを読み込む方法 perlでファイルを読み込むためには、…

Mojoliciousでディレクトリの場所を変数(属性)として格納する方法

Mojoliciousでとあるディレクトリの場所を保存しておきたい、と言う時がある。例えば、「気軽にmyapp/public/htmlのディレクトリにアクセスしたいな」と言う感じの場合。 その時は、/lib/MyApp.pmで以下のように書けば良い。(一応、mojo generate app MyApp…

perlの$_[0](デフォルト引数)とか@_(引数リスト)について気になったので調べた

とあるperlのコードを読んでみると、下記のような書き方をしていて気になったので、調べてみました。 sub on { push @{$_[0]{events}{$_[1]}}, $_[2] and return $_[2] } @_(引数リスト)とは? @_(引数リスト)とは、サブルーチン(関数)やfor、foreachなどの…

Mojoliciousで「Can't use string ("Controller") as a HASH ref while "strict refs" in use」のエラーが発生した時の対策

Mojoliciousを使っている時に、「Can't use string ("Sample::Controller::Post") as a HASH ref while "strict refs" in use」と言うエラーが出てハマったので、その対処法をメモしておく。 結論:メソッド名を変更したら上手くいく まず結論からだけど、僕…

Mojoliciousで静的ファイル(html)を読み込ませるための設定法

Mojoliciousを使っていると、動的ファイルではなくて静的ファイルを読み込ませたい時があります。(errorページみたいなやつで) そこで今回は、Mojolicisouで静的ファイルを扱うための知見がたまってきたので、備忘録がてらまとめておきます。 Mojolicious…

perlでは何がtrueで何がfalseと判定されるのか

perlでMySQLをいじっていた時に自分の予想と反する動きをして混乱したので、この機会にperlのtrue/falseについてまとめていく。 perlでは何がtrue/falseと判定されるのか? 公式ドキュメントに書かれている様に、perlでは以下の5つがfalseと判定されて、他は…

perlモジュール「Exporter」の使い方

便利なperlモジュールとして「Exporter」が挙げられるが、今回はExporterの使い方を紹介していくよ。 Exporterの使い方 Exporterの使い方は公式ドキュメントを読めば一発で分かりますが、一応解説。 例えば、以下の様なモジュールを作ったとします。 package…

Mojoliciousでの設定ファイル(Configプラグイン)の使い方とか一例を解説する

Mojoliciousでの設定ファイル(Config)の使い方とか一例をまとめていくよ。 Mojolicious::Plugin::Configとは? Mojolicious::Plugin::Configとは、Mojolicious(以下、mojo)に最初から入っているプラグインの一種で、設定ファイルを簡単に使えるようにしてく…

perlでIO::Socketを使う時に「permission deny」と言うエラーが出た時の対処法

perlで以下の様なコードを書いた時に、permission denyと言うエラーが出てきた。 use IO::Socket; $sock0 = new IO::Socket::INET( Listen => 5, LocalAddr => 'localhost', LocalPort => 80, Proto => 'tcp', Reuse => 1 ); 原因は単純で、ポート番号を80と…

Mojoliciousを使う時のMojo::Base -baseとかの使い分けのまとめ

perlのフレームワークである「mojolicious」を使っていると、use Mojo::Base -base;と書かれていたり、use MojoBase "Controller";みたいな書き方があるけど、これらはどの様な違いがあるのか気になったので調べました。 use Mojo::Baseの使い方 公式ドキュ…

perlのcpanmでDBI::mysqlをインストールする際に「Configure failed for DBD-mysql-4.050. See build.log for details.」と出た時の対処法

perlでmysqlを使いたくなったので、cpanmでDB::mysqlをインストールする時に以下のエラーが出たので、その対処法をまとめていきます。 ! Configure failed for DBD-mysql-4.050. See /Users/user/.cpanm/work/1553132323.14373/build.log for details. ボク…

Perlモジュール「Moo」(Moose)の使い方をまとめてみる

便利なPerlモジュール「Moo」の使い方についてまとめていきます。 日本語情報はもちろん、英語でも中々情報が転がっていないので、必死にまとめた情報を備忘録として書きます。 MooとかMooseとかMouseの違いって何なの? Mooの事を調べているとMouseとかMoos…

perlのgrep関数の使い方|変数とか戻り値とか複数条件とかのまとめ

perlのgrep関数について学んだので、備忘録としてまとめておきます。 grep関数の基本的なことについて grep関数は、第一引数に条件、第2引数にリスト(配列)を指定して使う関数。説明するよりも、下記のサンプルコードを見た方が早い。 use Data::Printer;…

perlのコードでよく見かけるrequire、use、BEGINの役割や関係についてまとめる

最近Perlを触り始めたのだが、ソースコードを見るとrequireとかuseとかBEGINと言ったキーワードをよく見かけるので、今のうちにまとめておく。 perlにおけるrequireの使い方 まずuseの前にrequire関数の使い方を解説する。 require関数とは、「ファイルを読…