こんにちは、Wiki ページに出力するための次のスクリプトを作成しました。問題は、出力をフォーマットする方法がわからないことです。これが私のコードです:
#!/usr/bin/perl
use strict;
use warnings;
use POSIX qw/strftime/;
#use warnings;
my $TOTALIOS = 'totalios';
my $READP = 'readpe';
my $CACHEP = 'cachehit';
my $CKBSEC = 'currentkb';
my $MKBSEC = 'maximumkb';
my $CIOSEC = 'currentio';
my $MIOSEC = 'maxio';
my $DATESTORE = 'dates.sec';
my $DATECMD = strftime "%m/%d/%y", localtime;
my $TIOS = 'Tios';
my $READp = 'readp';
my $CACHEp = 'cachep';
my $CKBsec = 'ckbsec';
my $MKBsec = 'mkbsec';
my $CIOsec = 'ciosec';
my $MIOsec = 'miosec';
my ($STORENUM, $STORENAME, $IMGPREFIX, $MONTH, $DAY, $YEAR) = &mysubinput;
sub mysubinput
{
print "Enter the number for the datastore: \n";
my $STORENUM = <STDIN>;
chomp($STORENUM);
print "Enter the name for the datastore e.g: DataStore or ServerStore: \n";
my $STORENAME = <STDIN>;
chomp($STORENAME);
print "Enter the data store image prefix e.g. datastore or serverstore: \n";
my $IMGPREFIX = <STDIN>;
chomp($IMGPREFIX);
print "Enter the month MM: \n";
my $MONTH = <STDIN>;
chomp($MONTH);
print "Enter the day DD: \n";
my $DAY = <STDIN>;
chomp($DAY);
print "Enter the Year YYYY: \n";
my $YEAR = <STDIN>;
chomp($YEAR);
return ($STORENUM, $STORENAME, $IMGPREFIX, $MONTH, $DAY, $YEAR);
# print "$STORENUM $STORENAME $IMGPREFIX $MONTH $DAY $YEAR\n";
# print "Not a very interesting routine\n";
# print "This does the same thing every time\n";
# print "$TOTALIOS\n";
# print "Enter the number for the datastore: \n";
# $line = <STDIN>;
# chomp($line);
# print "$line\n";
# print "$DATECMD\n";
}
sub writedate
{
print "! $DATECMD\n";
}
sub writesections(mysubinput())
{
print "| [[File:$STORENAME-$STORENUM-$TIOS-$MONTH-$DAY-$YEAR.png| 100px]]\n";
print "| [[File:$STORENAME-$STORENUM-$READp-$MONTH-$DAY-$YEAR.png| 100px]]\n";
print "| [[File:$STORENAME-$STORENUM-$CACHEp-$MONTH-$DAY-$YEAR.png| 100px]]\n";
print "| [[File:$STORENAME-$STORENUM-$CKBsec-$MONTH-$DAY-$YEAR.png| 100px]]\n";
print "| [[File:$STORENAME-$STORENUM-$MKBsec-$MONTH-$DAY-$YEAR.png| 100px]]\n";
print "| [[File:$STORENAME-$STORENUM-$CIOsec-$MONTH-$DAY-$YEAR.png| 100px]]\n";
print "| [[File:$STORENAME-$STORENUM-$MIOsec-$MONTH-$DAY-$YEAR.png| 100px]]\n";
}
sub writepage
{
&mysubinput;
print "Go back to [[MD3000i-Perf]] \n";
print "{| border=1 cellspacing=5 cellpadding=2 style=text-align: center \n";
print "|-\n";
print "! [[DataStore-1]]\n";
print "! [[DataStore-2]]\n";
print "! [[DataStore-3]]\n";
print "! [[DataStore-4]]\n";
print "! [[DataStore-5]]\n";
print "! [[DataStore-6]]\n";
print "! [[DataStore-7]]\n";
print "! [[DataStore-8]]\n";
print "! [[DataStore-9]]\n";
print "|-\n";
print "| [[File:disk.png |60px]]\n";
print "| [[File:disk.png |60px]]\n";
print "| [[File:disk.png |60px]]\n";
print "| [[File:disk.png |60px]]\n";
print "| [[File:disk.png |60px]]\n";
print "| [[File:disk.png |60px]]\n";
print "| [[File:disk.png |60px]]\n";
print "| [[File:disk.png |60px]]\n";
print "| [[File:disk.png |60px]]\n";
print "|}\n";
print "{| border=1 cellspacing=5 cellpadding=2 style=text-align: center\n";
print "|-\n";
&writedate;
print " |-\n";
&writesections;
print " |-}\n";
}
#&mysubinput;
&writepage;
#&mysubinput;
#&writesections;
このアプローチを使用すると、うまくいくようです。ただし、私の入力は 100% 正しいわけではありません。プログラムが何かを吐き出す前に、すべてのデータを2回入力する必要があります....
Enter the number for the datastore:
1
Enter the name for the datastore e.g: DataStore or ServerStore:
DataStore
Enter the data store image prefix e.g. datastore or serverstore:
datastore
Enter the month MM:
12
Enter the day DD:
03
Enter the Year YYYY:
2012
Enter the number for the datastore:
1
Enter the name for the datastore e.g: DataStore or ServerStore:
DataStore
Enter the data store image prefix e.g. datastore or serverstore:
datastore
Enter the month MM:
12
Enter the day DD:
03
Enter the Year YYYY:
2012
Go back to [[MD3000i-Perf]]
{| border=1 cellspacing=5 cellpadding=2 style=text-align: center
|-
! [[DataStore-1]]
! [[DataStore-2]]
! [[DataStore-3]]
! [[DataStore-4]]
! [[DataStore-5]]
! [[DataStore-6]]
! [[DataStore-7]]
! [[DataStore-8]]
! [[DataStore-9]]
|-
| [[File:disk.png |60px]]
| [[File:disk.png |60px]]
| [[File:disk.png |60px]]
| [[File:disk.png |60px]]
| [[File:disk.png |60px]]
| [[File:disk.png |60px]]
| [[File:disk.png |60px]]
| [[File:disk.png |60px]]
| [[File:disk.png |60px]]
|}
{| border=1 cellspacing=5 cellpadding=2 style=text-align: center
|-
! 12/04/12
|-
| [[File:DataStore-1-Tios-12-03-2012.png| 100px]]
| [[File:DataStore-1-readp-12-03-2012.png| 100px]]
| [[File:DataStore-1-cachep-12-03-2012.png| 100px]]
| [[File:DataStore-1-ckbsec-12-03-2012.png| 100px]]
| [[File:DataStore-1-mkbsec-12-03-2012.png| 100px]]
| [[File:DataStore-1-ciosec-12-03-2012.png| 100px]]
| [[File:DataStore-1-miosec-12-03-2012.png| 100px]]
|-}
この変数を「my」に追加した後、動作するようになりました
my ($STORENUM, $STORENAME, $IMGPREFIX, $MONTH, $DAY, $YEAR) = &mysubinput;
2 番目の部分は、リターン ($STORENUM、$STORENAME、$IMGPREFIX、$MONTH、$DAY、$YEAR) を追加することでした。
私の質問は、sub writesections から datastore.wk などのファイルに出力を取得する方法です。