Perl

perl変数の使用方法

スカラー変数

使用方法

$html = "トップページ\n";

文字をつなげる場合1
$html = "トップページ" . "\n";;

文字をつなげる場合2
$html = "トップページ";
$html .= "\n";

配列

データの設定

@tables = ('Mon','Tue','Wed','Thu','Fri','Sat','Sun');

データを取り出す方法1

(無名変数 $_ に代入される)
foreach(@tables){
	print $_ ."\n";
}

データを取り出す方法2

foreach $week (@tables){
	print $week ."\n";
}

データを取り出す方法3

(配列の個数は@tablesで取得できる)
(配列のIndexを指定する場合は $tables[i]と指定する)
for ($i=0;$i<@tables;$i++){
	print $tables[$i]; ."\n";
}

配列に対するデータの挿入、削除

push(要素の最後に追加する)
処理前 @tables = ('Mon','Tue','Wed','Thu','Fri','Sat');
処理   push(@tables,'Sun');
処理後 @tables = ('Mon','Tue','Wed','Thu','Fri','Sat','sun');

unshift(要素の先頭に追加する)
処理前 @tables = ('Tue','Wed','Thu','Fri','Sat','sun');
処理   push(@tables,'Mon');
処理後 @tables = ('Mon','Tue','Wed','Thu','Fri','Sat','sun');

pop(最後の要素を取り除く)
処理前 @tables = ('Mon','Tue','Wed','Thu','Fri','Sat','sun');
処理   pop(@tables);
処理後の値       ('Mon','Tue','Wed','Thu','Fri','Sat');

shift(先頭の要素を取り除く)
処理前 @tables = ('Mon','Tue','Wed','Thu','Fri','Sat','sun');
処理   shift(@tables);
処理後の値       ('Tue','Wed','Thu','Fri','Sat','sun');

配列のリファランス

@tables;      配列
\@tables;     リファランス渡し
$tables;      リファランス受け取り
@$talbes;     リファランス受け取り側配列指定
$$talbes[$i]; リファランス受け取り側配列(Index指定)
配列のリファランス使用例
sub main
{
   @tables = ('Mon','Tue','Wed','Thu','Fri','Sat','sun');
   &output(\@tables);
}

sub output
{
   my($tables) = @_;

   foreachを使用する場合
   foreach(@$tables){
      print "$_ \n";
   }

   forを使用する場合
   for($i=1;$i<@$tables;$i++){
      print "${$tables}[$i] \n";
   }
}

ハッシュ

データの設定

         'key'=>'data'
%data = ('Mon'=>'月',
         'Tue'=>'火',
         'Wed'=>'水',
         'Thu'=>'木,
         'Fri'=>'金',
         'Sat'=>'土',
         'Sun'=>'日');

キーとデータを取り出す方法

while ( ($key,$value) = each(%data) ){
	print "KEY=$key VALUE=$value \n";
}

キーを取出す方法

foreach $key ( keys %data ){
    print "KEY=$key VALUE=$data{$key} \n";
}

キーの数を調べる

$keycnt = keys(%data);

データを取り出す

@youbi = values(%data);

ハッシュのリファランス

%tables;      ハッシュ
\%tables;     リファランス渡し
$tables;      リファランス受け取り
$%talbes;     リファランス受け取り側ハッシュ指定
$$talbes{$key}; リファランス受け取り側ハッシュ(key指定)

外部ファイルの変数を読み込む

外部ファイル Env.conf

#!/usr/bin/perl
package Env;

$LogDir = '/var/log';                                # 変数
@Shops = ('Sapporo','Tokyo','Nagoya','Fukuoka');     # 配列
%ShopCode = (                                        # ハッシュ
     'Sapporo' => '001',
     'Tokyo'   => '002',
     'Nagoya'  => '003',
     'Fukuoka' => '004'
)

読み込む側のファイル

#!/usr/bin/perl

require './Env.conf';

for(my $i=0;$i<@Env::Shops;$i++){
  printf ("%-10s",$Env::Shops[$i]);
  print $Env::ShopCode{$Env::Shops[$i]}."\n";
}

実行結果

Sapporo   001
Tokyo     002
Nagoya    003
Fukuoka   004


戻る

      Document-Folder          一覧
HP-UX
HULFT
JAVA
JP1
JavaScript
Linux
MAC
PHP
Perl
Python
Ruby
SOA
Solaris
Unix全般
Windows
XML
エクセル
スタイルシート
セキュリティー
データベース
ネットワーク
パソコン
ブラウザ
プログラム構文
仮想化
          RSS-Folder
ニュース
   アットマーク・アイティ(@IT)
   シンクイット(ThinkIT)
   インターネットコム
   インターネットウォッチ
   日経IT-Pro
   日経パソコン
   CNET Japan
   ZD-NetJapan
   MYCOM
   RBB-Today
ベンダー
   日本IBM
   日本HP
   サンマイクロシステムズ
   NEC
   富士通
   日立
ソフトウェア
   マイクロソフト
   トレンドマイクロ
   オラクル
   サイボウズ
   Mozilla
   野村総合研究所
   (その他ソフトウェア企業)
更新履歴 一覧
 07/08 PERF
プログラム構文
 07/07 PERF
プログラム構文
 06/25 オブジェクトプログラミング2
Perl>サンプル
 07/12 クローン作成
仮想化>vCenter
 07/12 vyatta設定
ネットワーク>vyatta
 07/12 vyattaインストール
ネットワーク>vyatta
 07/12 リポジトリサーバ
Linux>サーバ構築
 07/05 VMwareのインストール
仮想化>VMware
 07/05 PXEブート
仮想化>KVM
 07/01 DHCPでのPXEブート
仮想化>KVM
 06/27 qcow2仮想DISK作成
仮想化>KVM
 06/13 NWの設定
仮想化>VMwareEsxi
 06/13 IPアドレスの変更
仮想化>VMwareEsxi
 06/12 自動ssh
Unix全般>シェル>Bash
 06/12 diffプログラミング
Python
Google