作者giacch (小a)
看板Perl
标题Re: [问题] 除了关键字,其余改成大写
时间Fri Apr 23 19:54:19 2010
※ 引述《iloveyoungae (迷上西方天使)》之铭言:
: 各位先辈大家好
: 小弟最近开始练习一个题目
: 读一个档案,将关键字以外的字串,都变成大写
: 这是小弟的写法
: use strict;
: open(open_file "02.txt") or "error file!!";
: open(write_file, ">04.txt") or "error file!!";
: while(<open file>)
: {
: chomp;
: if ($_ !~/input\s|module\s/i)
: {
: $_=~ tr/a-z/A-Z;
: }
: print write_file "$_","\n";
: }
: 但是结果出来,有点问题
: module wait68k (lbus , lcs_n , mode_68k ,
: IOIS16_N , PDOE , WE_N , LBUS_N , OE_N,
: LOAD_N , MIIDIOEN1 , PDOE_N );
: input lbus;
: input lcs_n;
: input mode_68k;
: input iois16_n;
: input pdoe;
: input we_n;
: input lbus_n;
: input oe_n;
: OUTPUT LOAD_N;
: OUTPUT MIIDIOEN1;
: OUTPUT PDOE_N;
: 像是module跟input後面,应该要变成大写,却还是跟原本一样,没有改变
: 请教 这个问题该怎麽处理
: 谢谢
#!/usr/bin/perl
while(<DATA>) {
# s/\w+/($& eq 'input' or $& eq 'module') ? $& : uc($&)/ge;
foreach $s (/\w+/g) { $s=~/input|module/i or s/$s/uc($s)/e; }
print;
}
__DATA__
module wait68k (lbus , lcs_n , mode_68k ,
iois16_n , pdoe , we_n , lbus_n , oe_n,
load_n , miidioen1 , pdoe_n );
input lbus;
input lcs_n;
input mode_68k;
input iois16_n;
input pdoe;
input we_n;
input lbus_n;
input oe_n;
output load_n;
output miidioen1;
output pdoe_n;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.192.170.66
※ 编辑: giacch 来自: 123.192.170.66 (04/23 20:13)
1F:→ iloveyoungae:谢谢G大的帮忙 05/03 09:11