PIXNET Logo登入

叮咚

跳到主文

Miracles are waiting everywhere.

部落格全站分類:不設分類

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 8月 29 週一 201115:41
  • [Perl 筆記] Pattern matching





﹝學習記錄﹞- Perl – 正規算式, split, 檔案與檔案代碼


 


@array = split (/\s+/, $line);


 


Open (HANDLE, $file); 開啟並讀取檔案


Close (HANDLE); 關閉檔案


 


函式Open()


Open (HANDLE, “<$file”); 開啟並讀取檔案


Open (HANDLE, “>$file”); 開啟並寫入檔案


Open (HANDLE, “>>$file”); 開啟並新增資料至檔案中


Open (HANDLE, “+<$file”); 可讀又可寫,會保留原先檔案內容


Open (HANDLE, “+>$file”); 可讀又可寫,會覆蓋原先檔案內容


Open (HANDLE, “+>>$file”); 可讀又可新增


 


執行結果範例:









==================================================


AREF Structure.....: CELL_A


Insert Point.......: 0,0


Number of Columns..: 10


Column Pitch.......: 30


Number of Rows.....: 20


Row Pitch..........: 55


==================================================



 


程式碼









#!/usr/bin/perl -w  # csh檔頭


use strict;


 


my $txtfile="./circle_A.ctxt";


open(FH, $txtfile)||die "Can't open $txtfile for reading!\n";


print "CTXT File $txtfile\n";


 


my @arr;


while(my $line=<FH>){


  if ($line=~/^AREF/){  # =~ 含括;


    $_=$line;s/\(|\,|\)/ /g;$line=$_;  #預設變數 $_


    @arr=split(/\s+/, $line);


  }


}


 


#for (my $i=0; $i <=$#arr; $i++){


#}


 


print '='x50,"\n";


print "AREF Structure.....: $arr[1]\n";


print "Insert Point.......: $arr[2],$arr[3]\n";


print "Number of Columns..: $arr[4]\n";


print "Column Pitch.......: $arr[5]\n";


print "Number of Rows.....: $arr[7]\n";


print "Row Pitch..........: $arr[9]\n";


print '='x50,"\n";


 


close(FH);



 



(繼續閱讀...)
文章標籤

yunc 發表在 痞客邦 留言(0) 人氣(984)

  • 個人分類:... Perl 筆記
▲top
  • 8月 29 週一 201115:05
  • [Perl 筆記] 畫圓 ◯◯◯





﹝學習記錄﹞- Perl – 畫圓


✎✎✎✎✎✎✎✎✎✎✎✎


◯ 畫圓 ◯●●○ ☺


 


弧度 = (π/180) x 角度


 


三角函數概念:


X長度 = r*cos ( 弧度 )


Y長度 = r*sin ( 弧度 )


 


CTXT, CLIB, CINC…









#!/usr/bin/perl -w


use strict;


 


##Generate ctxt file -----------------------------------------------------


my $stru_top='TOP';


my $stru_cellA='CELL_A';


my $in_point='0,0';


my $laye='1';


 


print "Please enter the divided sides: ";


chomp(my $num=<>);


print "Please enter the radius: ";


chomp(my $r=<>);


print "Please enter the number of column: ";


chomp(my $col=<>);


print "Please enter the pitch of column: ";


chomp(my $col_pitch=<>);


print "Please enter the number of row: ";


chomp(my $row=<>);


print "Please enter the pitch of row: ";


chomp(my $row_pitch=<>);


 


my $txtfile="./circle_A.ctxt";


open(F_CA, ">$txtfile") or die "Can't write to $txtfile: error $!\n";


print F_CA 'TEXTLIB 9.0.0',"\n";


print F_CA 'BEGLIB',"\n";


print F_CA '!',"\n";


print F_CA "STRUCT $stru_top\n";


print F_CA "AREF $stru_cellA \($in_point\) $col\($col_pitch,0\) $row\(0,$row_pitch\)\n";


print F_CA 'ENDSTRUCT',"\n";


print F_CA '!',"\n";


print F_CA "STRUCT $stru_cellA\n";


print F_CA "LAYER $laye\n";


print F_CA "B ";


  for(my $i=1;$i<=$num;$i++){


    my $arc=(3.1415/180)*(360/$num)*$i;


    my $x=sprintf("%.3f", $r*cos($arc));  #X方向座標


    my $y=sprintf("%.3f", $r*sin($arc));  #Y方向座標


    print F_CA "$x,$y ";


  }


print F_CA " ENDB\n";


print F_CA 'ENDSTRUCT',"\n";


print F_CA '!',"\n";


print F_CA 'ENDLIB',"\n";


close(F_CA);


print "output $txtfile\n";


##Generate ctxt file <END>--------------------------------------------------


 


##Generate csh file -----------------------------------------------------------


my $cshfile="./circle_A.csh";


my $clibfile="./circle_A.clib";


open (F_CSH, ">$cshfile") or die "Cannot write to $cshfile: $!\n";


print F_CSH '#!/bin/csh/ -f',"\n";


print F_CSH "textlib << TL_!\n";


print F_CSH "$txtfile\n";


print F_CSH "$clibfile\n";


print F_CSH 'TL_!',"\n";


close(F_CSH);


print "generate $cshfile\n";


##Generate csh file <END>---------------------------------------------------


`csh $cshfile`;   #鍵盤左方的 `


print "convert to $clibfile\n";


 


##Open cinc file by cats-------------------------------------------------------


my $cincfile="./circle_A.cinc";


open (F_CINC, "> $cincfile") or die "Cannot write to $cincfile: $!\n";


print F_CINC "Allocate_rects 1000000\n";


print F_CINC "Allocate_traps 1000000\n";


print F_CINC "Allocate_space 300000000\n";


print F_CINC "Format FLAT\n";


print F_CINC "Compact REDO\n";


print F_CINC "Join NO\n";


print F_CINC "Rule EXTEND\n";


print F_CINC "Border OUTSIDE\n";


print F_CINC "Resolution 0.01\n";


print F_CINC "Input $clibfile\n";


print F_CINC "Structure $stru_top\n";


print F_CINC "Layers $laye\n";


print F_CINC "ext\n";


 


print F_CINC "\nset view primary enable\n";


print F_CINC "set solid_fill primary on\n";


print F_CINC "set color primary file\n";


print F_CINC "set draw_mode primary input\n";


print F_CINC "set view_bound primary off\n";


print F_CINC "draw\n";


close(F_CINC);


print "include $cincfile\n";


system('xterm','-geometry','110x25','-e','cats',$cincfile);


##Open cinc file by cats <END>----------------------------------------------



 


 



(繼續閱讀...)
文章標籤

yunc 發表在 痞客邦 留言(0) 人氣(325)

  • 個人分類:... Perl 筆記
▲top
  • 8月 29 週一 201114:13
  • [Perl 筆記] 畫星星 ✩✩✩





﹝學習記錄﹞- Perl – 畫星星 ✩✩✩ 


指定範圍畫星星…


執行程式範例:









Please enter a value of width(1-100): 44


Please enter a value of height(1-30): 5


 


********************************************


********************************************


********************************************


********************************************


********************************************



程式碼:









my $v1=1;


my $v2=1;


my $val_w;


my $val_h;


while ($v1==1){


  print "Please enter a value of width(1-100): ";


  chomp($val_w=<>);


  $v1=0;


  if($val_w<=0 or $val_w>100 or $val_w != int($val_w)){


    $v1=1;


  }


}


while ($v2==1){


  print "Please enter a value of height(1-30): ";


  chomp($val_h=<>);


  $v2=0;


  if($val_h<=0 or $val_h>30 or $val_h != int($val_h)){


    $v2=1;


  }


}


print "\n";


for (my $i=1;$i<=$val_h;$i++){


  print '*'x $val_w,"\n";


}


print "\n";




(繼續閱讀...)
文章標籤

yunc 發表在 痞客邦 留言(0) 人氣(146)

  • 個人分類:... Perl 筆記
▲top
  • 8月 29 週一 201113:55
  • [Perl 筆記] 預設變數 @ARGV





﹝學習記錄﹞- Perl – 預設變數


預設變數: $_ , @_, @ARGV


 


@ARGV: 存放命令列引數的陣列


$#ARGV: 陣列最後一個索引值


 


執行程式時 後面加上的命令列引數會依序存放在陣列@ARGV中









% arrstr.pl   today     is    a     nice    day   !


 


執行結果


string= todayisaniceday!



 


程式碼









my $a;


for (my $i =0; $i <=$#ARGV; $i++){


  $a .=$ARGV[$i];


}


if (!@ARGV){


  print "\n Please enter parameters... \n\n";  # \n 為換行符號


}else{


  print "\n string= ",$a,"\n\n";


}



 



(繼續閱讀...)
文章標籤

yunc 發表在 痞客邦 留言(0) 人氣(6,410)

  • 個人分類:... Perl 筆記
▲top
  • 8月 29 週一 201112:08
  • [Perl 筆記] 等差數列





(繼續閱讀...)
文章標籤

yunc 發表在 痞客邦 留言(0) 人氣(394)

  • 個人分類:... Perl 筆記
▲top
  • 8月 29 週一 201111:56
  • [Perl 筆記] 九九乘法表





(繼續閱讀...)
文章標籤

yunc 發表在 痞客邦 留言(0) 人氣(2,951)

  • 個人分類:... Perl 筆記
▲top
  • 8月 29 週一 201111:37
  • [Perl 筆記] 四捨五入





(繼續閱讀...)
文章標籤

yunc 發表在 痞客邦 留言(0) 人氣(1,800)

  • 個人分類:... Perl 筆記
▲top
  • 8月 29 週一 201111:05
  • [Perl 筆記] Sub





(繼續閱讀...)
文章標籤

yunc 發表在 痞客邦 留言(0) 人氣(128)

  • 個人分類:... Perl 筆記
▲top
  • 8月 29 週一 201110:40
  • [Perl 筆記] 第一個程式





(繼續閱讀...)
文章標籤

yunc 發表在 痞客邦 留言(0) 人氣(184)

  • 個人分類:... Perl 筆記
▲top
1

文章分類

toggle 隨享文 (6)
  • ... 科學新知 (12)
  • ... 藝術文化 (8)
  • ... 修煉故事 (15)
  • ... 好文分享 (33)
  • ... 奇聞奇事 (57)
  • ... 微笑生活 (24)
toggle 個人誌 (3)
  • ... 備忘 (8)
  • ... 花花草草 (1)
  • ... 工具箱 (1)
toggle 工作誌 (3)
  • ... 備忘 (1)
  • ... PHP (1)
  • ... Perl 筆記 (9)
  • 未分類文章 (1)

最新文章

  • 秋色 • 楓葉丨1小時深度集中音樂 • 閱讀音樂 • 學習音樂【天使放鬆音樂 Angel Relaxation Music】
  • 呂LU - 【 秋分の歌 】|Soundtrack
  • 【小純原創】生命之旅|Helena's Original music: The Journey of Life (Piano Solo)
  • 原創樂曲:最好的祝願 Original music: best wishes
  • 《善念點亮台灣》第二期來了!與善同行紀實創作⼤賞贏$10,000美元!
  • 原創樂曲:大峽谷 Original music: Grand Canyon
  • 【電影畫外因】-《魔戒三部曲》之三 托爾金的奇幻人生,魔幻史詩文學的開山鼻祖!工業革命污染環境,「索姆河戰役」悲壯慘烈,引發托爾金思考生命!《魔戒》是如何誕生的?托爾金著作應該怎麼讀?
  • 【電影畫外因】-《魔戒三部曲》之二 為何護送「魔戒」的重任會交給武力值為零的佛羅多?為什麼說「魔戒」是一部警示預言?為什麼說結尾末日火山那段反轉,讓「魔戒」具有了哲學高度?
  • 【電影畫外因】-《魔戒三部曲》之一 深入解讀《魔戒三部曲》:中土世界並非托爾金的虛構!為何說《魔戒》是奇幻文學的天花板?戒靈是怎麼來的?真的有精靈語嗎?為何說《魔戒》是一部警世預言?
  • 【輪迴漫談】前世業力和今生疾病

熱門文章

  • (15,497)[VNC] 如何修改登入VNC的密碼…
  • (84,696)❘❙❚ 數學常用符號 + 釋義 整理
  • (2,192)生死交關 別有洞天
  • (573)世界神秘地域 美國加州神秘點
  • (3,319)美國少將與來自地心的祕密
  • (7,719)一代偉人孫中山的輪迴轉世
  • (92)英國通靈男孩感知的輪迴轉世(四)

廚娘香Q秀

文章搜尋