Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
703 lines (388 sloc) 20.3 KB

Perl 入学式 第 1 回

導入編


諸注意

会場について

  • 飲食の可否

  • 手洗いの場所

  • 喫煙場所


諸注意

講義の進行について

  • 講義中の疑問点

  • うまくプログラムが動かない

  • 分からない

上記についてはサポーターが適宜回答やアドバイスを Discord でおこないます。

テキストまたは音声チャットにて個別にサポートしますので、気軽に質問してください。


諸注意

講義環境について

  • Youtube

  • スライド共有ツール

  • Discord


諸注意

本日のサポーター紹介


Perl 入学式の学習環境について


Perl 入学式の学習環境について

利用するツール

それぞれのツールへのリンクは connpass のイベントページに掲載しています。


Perl 入学式の学習環境について

オンライン時のおすすめの学習環境

  • スマホ・タブレットで Youtube Live を視聴

  • PC で スライド同期くん ・ Perl 実行環境 ・ Discord を開く

仮想デスクトップ機能・マルチディスプレイ、タブレットを併用するなどしながら学習を進めましょう。


Perl 入学式の学習環境について

スライド同期くん

講師が見ているスライドを受講生の手元で反映するためのツールです。

画面下にある「スライドを同期する」にチェックボックスを入れ、 講師のアカウントを選択します。

練習問題を解く時など、じっくりスライドを確認する時はチェックを外してください。



Perl 入学式の学習環境について

スライド同期くん

ネットワークの環境により、講師が行っている講義と Youtube Live で配信される映像がずれることが予想されます。

「同期の遅延」で設定されている 0 秒 のところをクリックすると、スライドをめくるタイミングを遅らせることができます。

まずは 30 秒を基準にして設定し、Youtube Live で配信される講師スライドに合わせて調整を行ってください。



Perl 入学式の学習環境について

スライド同期くん

スライドめくりなど、利用方法については画面右上のリンクで表示が可能です。



ターミナルとシェル入門


ターミナルとシェル入門

キャラクター・ユーザー・インターフェース

macOS も Linux も、Windows と同じく GUIジーユーアイ で操作可能です。

ですが、プログラミングをする上で CUIシーユーアイ (CLIシーエルアイ) は避けて通れません。

  • CUI ... Character User Interfaceキャラクター ユーザー インターフェース

  • CLI ... Command Line Interfaceコマンド ライン インターフェース

これらは文字によって操作を行うインターフェイスのことを指します。

  • Windows ならば、コマンドプロンプトに該当します。

  • Linux / macOS ではターミナルに該当します。


ターミナルとシェル入門

ターミナルとシェル

プログラムの起動や制御をCUI(CLI)で行うプログラムのことを、シェルと呼びます。

ターミナルを開くと、シェルを使った操作が出来るようになります。

シェル


ターミナルとシェル入門

ターミナルの開き方

Windowsの方はインストールした MSYS2 MSYS を 、 Mac ユーザーの方は Launchpad から「ターミナル」を選択し、起動します。

ターミナルは頻繁に起動するため、タスクバーやDockへ追加しておくことをおすすめします。

ターミナルのアイコン


ターミナルとシェル入門

プロンプト

ターミナルでは入力待ちの時にプロンプトが表示されます。

zshズィーシェル, macOS Catalina(10.15)以降

%

Bashバッシュ, MSYS32, macOS Mojave(10.14)以前の標準, Linux

$

これら行頭に表示される記号は「入力受付の状態」を示すものです。この記号は入力する必要はありません。

また、プロンプトはカスタマイズも可能です。興味がある人はGoogleで「プロンプト カスタマイズ」等で検索してみましょう。


ターミナルとシェル入門

シェルで使えるコマンド集

Perl入学式の中でもよく使うコマンドを紹介します。

シェルには、これから紹介する以外にも様々なコマンドがあります。

OSやシェルの種類によって使えるもの、使えないものがありますが、使いこなせば作業の負担を軽減することができます。

参考図書:まんがでわかるLinux シス管系女子


ターミナルとシェル入門

ls:ファイル一覧の表示

$ ls
デスクトップ ダウンロード (以下略)

ls は、現在いるディレクトリにあるファイルを表示します。

コマンド名は 'list segments' の頭文字を取ったものです。

ls -a は、.(ドット) で始まる、通常は見えない隠しファイルも含め、すべて表示します。

このように、コマンドに追加の命令(-a の部分)をつけて動作を変えることができます。

この追加の命令を引数ひきすうといいます。


ターミナルとシェル入門

pwd:現在位置を表示

$ pwd
/home/username

pwd は、現在いるディレクトリの場所(パス)を表示します。

コマンド名は 'print working directory' の頭文字を取ったものです。


ターミナルとシェル入門

mkdir:ディレクトリを作成

$ mkdir sample
$ ls
sample デスクトップ ダウンロード (以下略)

mkdir DIRECTORY は、DIRECTORY というディレクトリを作ります。

コマンド名は 'make directory' を短縮したものです。


ターミナルとシェル入門

cd:ディレクトリへ移動

$ cd sample
$ pwd
/home/username/sample
$ cd ..
$ pwd
/home/username

cd DIRECTORY で、DIRECTORY に移動します。

コマンド名は 'change directory' を短縮したものです。

上の階層のディレクトリは .. で表示されます。cd .. とする事で、上の階層に移動します。


ターミナルとシェル入門

touch:空のファイルを作成する

$ touch sample1 sample2
$ ls
sample1 sample2

touch には2つの役割があります。 touch FILENAME とした時・・・

  • FILENAME がすでに存在する場合には、ファイルのアクセス日時と更新日時を現時刻に書き換える
  • FILENAME が存在しない場合には、空のファイルを生成する

ターミナルとシェル入門

rm:ファイルを削除する

$ ls
sample1 sample2
$ rm sample1
$ ls
sample2

rm FILENAME は、FILENAME のファイルを削除します。 FILENAME1 FILENAME2 のように半角スペースで区切ることで複数個指定することができます。

コマンド名は 'remove' を短縮したものです。

この rm コマンドによる削除は即時反映されます。Windows の「ゴミ箱」に当たる機能はありません。注意しましょう。


ターミナルとシェル入門

rmdir:ディレクトリを削除する

$ mkdir del_sample
$ ls
del_sample
$ rmdir del_sample
$ ls
$

rmdir DIRNAME は、DIRNAME のディレクトリを削除します。ただしディレクトリは空である必要があります。

コマンド名は 'remove directory' を短縮したものです。

ディレクトリの中身ごとを削除するときは、先に紹介した rm に引数をつけた rm -r DIRNAME で削除します。

-rという引数は recursiveリカーシブ(再帰的) を意味しています。


ターミナルとシェル入門

cp:ファイルをコピーする

$ ls
sample2
$ cp sample2 sample1
$ ls
sample1 sample2

cp SOURCE_FILE DEST_FILE は、SOURCE_FILEDEST_FILE にコピーします。

コマンド名は 'copy' を短縮したものです。

ディレクトリをコピーするときは、引数 -r を指定し、cp -r SOURCE_DIR DEST_DIR となります。


ターミナルとシェル入門

mv:ファイルを移動する

$ ls
sample1 sample2
$ mv sample1 sample_text
$ ls
sample_text sample2

mv SOURCE_FILE DEST_FILE で、SOURCE_FILEDEST_FILE に移動します。

コマンド名は 'move' を短縮したものです。

ファイルやディレクトリの名前を変更する為にも使えます。


ターミナルとシェル入門

start:エクスプローラーから開く

$ start .

start DIRECTORY で、DIRECTORY を Windows 標準の Explorer というファイルマネージャで開きます。start は対象となるファイルの種類によって動作が変わります。

例えばディレクトリが対象ならば上記のように Explorer で表示、エクセルファイルなら Excel で開く、という動作をします。

Explorer


ターミナルとシェル入門

open:ファインダーから開く

$ open .

open DIRECTORY で、DIRECTORY を macOS 標準の Finder というファイルマネージャで開きます。

open は対象となるファイルの種類によって動作が変わります。

例えばディレクトリが対象ならば上記のように Finder で表示、テキストならばテキストエディタで表示、という動作をします。


ターミナルとシェル入門

練習問題:ターミナル操作のおさらい

  1. ホームディレクトリperl-entrance というディレクトリを作りましょう。

ホームディレクトリとは、ユーザごとに用意された作業場所のようなものです。

cd とだけ入力してエンターキーを押すと、ホームディレクトリに移動します。

  1. 作った perl-entrance ディレクトリの中に移動しましょう。

続きます


ターミナルとシェル入門

練習問題:ターミナル操作のおさらい

  1. **カレントディレクトリ(現在いるディレクトリ)**のパスを pwd で表示し、その後に、 start もしくは open を使って、ファイルマネージャで開いてみましょう。

  2. touchtext.txt というファイルを作成し、 open コマンドで開いてみましょう。


エディタ入門


エディタ入門

エディタ

コードを書く時に最も使う道具、それがエディタです。

プログラミングに特化した様々なエディタが開発されていますが、Perl 入学式では Visual Studio Code を推奨しています。

特にこだわりのない方は、今回紹介する Visual Studio Code を利用してください。

もちろん、EmacsイーマックスVimヴィム、サクラエディタなど、既に使い慣れているエディタがある方はそちらをお使いください。


エディタ入門

ダウンロード

Visual Studio Code の公式ページ Visual Studio Code - Code Editing. Redefined へアクセスし、 Download をクリックします。


エディタ入門

インストール:Windows

ダウンロードした VSCodeUserSetup-**.exe をダブルクリックすると、インストールが開始されます。

** としたところにはバージョン番号が入ります。

インストール後は、スタートメニューから「Visual Studio Code」をダブルクリックすれば Visual Studio Code が起動します。

インストール直後は自動的に起動します。


エディタ入門

インストール:macOS

ダウンロードした VSCode-darwin-stable.zip をダブルクリックすると、Visual Studio Code.app が生成されます。

これをダブルクリックすれば Visual Studio Code が起動します。

「 "Visual Studio Code.app" はインターネットからダウンロードされたアプリケーションです」という警告が出た場合、「開く」をクリックします。


エディタ入門

日本語化

メニューが英語でとっつきにくい場合には、日本語化することが可能です。

  1. ウィンドウ左上の View -> Command Palette から Configure Display Language と入力して候補を選択する。

  2. Install Addicional Languages を選択する。

  3. 左側のメニューから「日本語」を選択し、緑色の「Install」ボタンを押す。

  4. 一度 Visual Studio Code を閉じて、再度起動する。

  5. 英語表記に戻す場合には、1. から en を選択してから Visual Studio Code を再起動します。


エディタ入門

ファイルを開く

  • 左上メニューから

    • Windows 版:ファイル -> ファイルを開く(または Ctrl を押しながら oオー

    • macOS 版:ファイル -> 開く(または command を押しながら oオー

「Ctrl を押しながら oオー」などの、カーソルではなく、キーボードの上のキーのみで操作するための組み合わせを ショートカット といいます。


エディタ入門

ファイルを保存する

  • 左上メニューの ファイル -> 保存(Windows / Mac 共通)

    • Windows 版ショートカット(Ctrl を押しながら s)

    • Mac 版ショートカット(command を押しながら s)


エディタ入門

ファイル編集手順

perl-entrance ディレクトリ内に profile.txt という空のファイルを用意して、Visual Studio Code で編集する例です。

  1. cd コマンドを利用し、perl-entrance フォルダに移動する

  2. touch コマンドを使い、profile.txt を作成する

  3. Windows(MSYS2)の場合は start . で Explorer を 、macOS の場合は open . で Finder を開き、中の profile.txt を Visual Studio Code にドラッグ&ドロップする

  4. 編集が終わったら Visual Studio Code の上にある ファイル メニューから 保存 を選択する


Hello,world!


Hello,World!

最初のプログラム

プログラム言語の学習において、最初に解説するのは

Hello, world! と表示するプログラム」

とされています。

作法に乗っ取り、Hello, world! を表示する Perl プログラムに挑戦してみましょう。


Hello,World!

プログラム作成

print "Hello, world!\n";

hello.pl というファイルを作成し、エディタで上記のプログラムを書いて保存します。

  • print は、ターミナルに文字を出力する命令です。

  • \nバックスラッシュ エヌは改行を意味します。

  • Mac の日本語キーボードの場合、\ は Option + キーで入力できます。

  • 文の最後にはセミコロン( ; )が必要です。文の区切りという意味です。


Hello,World!

プログラム実行

プログラムの保存が終わったら、ターミナルで以下のように打ち込みます。

$ perl hello.pl

perl の引数に実行したいファイル名を与えると、そのファイルが Perl で実行されます。

$ perl hello.pl
Hello, world!

無事、Hello,world! が表示されたでしょうか?


Hello,World!

おまじない

#!/usr/bin/env perl
use strict;
use warnings;

プログラムには、問答無用で書いておく「おまじない」ともいうべきものがあります。

Perl では上記の 3 行が「おまじない」となります。


Hello,World!

おまじない解説

  • #!/usr/bin/env perl ... shebangシバン と呼ばれるもので、このプログラムが perl で動くことを明示する

  • use strict; ... 厳密な書式で書くことを強制し、未定義の変数があれば警告する

  • use warnings; ... 望ましくない記述を警告する

これらの「おまじない」により、わかりやすく堅牢なコードを書くことができます。

以降、Perl 入学式のサンプルコードではスペースの都合により「おまじない」を省略します。書かれているものとして扱ってください。


Hello,World!

練習問題:entrance.pl

「この勉強会の名前」と「今日の日付」を表示するプログラム entrance.pl を書いてみましょう。

print文を 2 つ利用してください。以下はヒントです。

  • プログラムは上から順に実行されます。

  • 「おまじない」を忘れない事!

  • 文末に ; を入れるのを忘れないでください。

  • 可読性(読みやすさ)向上のため、セミコロンの後に改行を入れて複数の行にしましょう。


Hello,World!

練習問題:newline.pl

print "hello! \n\n\n\n\n world!";

上記のプログラムはどのような結果になるか考えてみてください。

また、上記のプログラムを入力、またはコピペして実行し、どのような結果になるかを確認してください。

ファイル名は newline.pl とするのが良いでしょう。


出来た方は、Discord のテキストチャットで「出来た!」とリアクションしてみてください。


休憩 & 質問 & 雑談 タイム
(5 〜 10 分)


お疲れ様でした!

サポーターや参加者の皆さんと交流しましょう。

不明点は Discord #雑談部屋 で是非質問してください。

「●●をやりたいが、何から手をつけていいかわからない」といった質問にも、何かしらアドバイスやヒントを提供できる場になればと考えています。

次回以降の参加もお待ちしております!