Perl -> 関数

split関数の使用方法

使用方法
$Log = "DATE,TIME,CPU,Disk,Memory,NetWork";

# カンマ区切りの文字列を全て配列へ格納する
@All = split(/,/,$Log);

# 0番目と1番目のみ配列へ格納する。
$AccessTime[0] は DATE
$AccessTime[1] は Time
@AccessTime = (split(/,/,$Log))[0,1];

# 2番目から5番目を配列へ格納する。
$Performance[0] は CPU
$Performance[1] は Disk
$Performance[2] は Memory
$Performance[3] は NetWork
@Performance = (split(/,/,$Log))[2..5];
取り出す位置を変数で指定する場合
@AccessTime = (split(/,/,$Log))[0,1];
これを変数で指定する場合は、位置を配列で指定する。
@pos = (0,1);
@AccessTime = (split(/,/,$Log))(@pos);

@Performance = (split(/,/,$Log))[2..5];
@pos = (2,3,4,5);
@Performance = (split(/,/,$Log))(@pos);
応用
%Log=('HP'  => {'Header' => 'DATE,TIME,CPU,Disk,Memory,NetWork',
                'pos'    => '2,3,4,5'},
      'SUN' => {'Header' => 'DATE,TIME,Disk,Memory,CPU,Network',
                'pos'    => '4,2,3,5'});

# $os が HP の場合 2,3,4,5 が
SUN の場合 4,2,3,4 が @pos に設定される
@pos = split(/,/,$Log{$os}{'pos'});

my($cpu,$disk,$mem,$nw) =  (split(/,/,$Log{$os}{'Header'}))[@pos];

# HP も SUN も同じ出力結果になる
print $cpu."\n";
print $disk."\n";
print $mem."\n";
print $nw."\n";


戻る

      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