LogIn E-mail
설계이야기
chomp $_ @_ say defined use 5.010 state grep any map
# 39 JMJS    18.10.27 12:52

@s=split //;
foreach (@s) { say;}

if($l=/pa/){ say;}
if($l=$_=~/pa/){say;}

while(<>) { say substr $_,0,3;}
while($l=<>) { say substr $l,0,3;}
&num_test(2, 3);
sub num_test {  print $_[0] + $_[1], "\n";}

\n      개행문자.
\t      탭.
\w      문자 또는 숫자. [a-zA-Z0-9]와 같습니다.
\W      \w가 아닌 것. [^a-zA-Z0-9]와 같습니다.
\d      십진수. [0-9]와 같습니다.
\D      십진수 아닌 것. [^0-9]와 같습니다.
\s      공백문자. space, 탭, 개행문자 등.
\S      공백문자 아닌 것.
\b      단어의 경계(boundary). [ ]의 바깥에서만 사용.
        "the green grass of home"의 \bthe\b, \bgreen\b,
           \bgrass\b, \bof\b, \bhome\b.
        \bthe\b와 \bhome\b도 포함됨에 유의하세요.
\B      단어의 경계가 아닌 것.

- {}는 문자, 그룹의 개수를 지정합니다. -
        ba(na){2}       banana만 해당.
        ba(na){1,2}     bana, banana만 해당.
        ba(na){2,5}     banana, bananana, banananana, bananananana만 해당.
        o{2,4}p         oop, ooop, oooop.


중요: 위에서 쓰였던 특수한 문자들 ^$|[]()\/{}*.?+ 등을 그 자체로 사용할 때는 그 앞에 \를 붙여 주세요.
    \^ \$ \| \[ \] \( \) \\ \/ \{ \} \* \. \? \+



#without comments
@o=grep(!/^#/,@s);
@o=grep{!/^#/} @s;
print join ", ", grep { length $_ == 6 } @capitals;
print scalar grep { $_ eq 'Columbus' } @capitals; # "1"


my @squares = map { $_ * $_ } grep { $_ > 5 } @numbers;
        my %hash = map { get_a_key_for($_) => $_ } @array;
        my %hash;        foreach (@array) {            $hash{get_a_key_for($_)} = $_;        }
     my %hash = map {  "\L$_" => 1  } @array # perl guesses EXPR. wrong
     my %hash = map { +"\L$_" => 1  } @array # perl guesses BLOCK. right
     my %hash = map {; "\L$_" => 1  } @array # this also works
     my %hash = map { ("\L$_" => 1) } @array # as does this
     my %hash = map {  lc($_) => 1  } @array # and this.
     my %hash = map +( lc($_) => 1 ), @array # this is EXPR and works!
     my %hash = map  ( lc($_), 1 ),   @array # evaluates to (1, @array)
     my @hashes = map +{ lc($_) => 1 }, @array # EXPR, so needs comma at end
 
open (FILE, "foo.txt");
    my @words = map { split } <FILE>;
    close FILE;
my @words = map { split(' ', $_) } <FILE>;
 open (FILE, "foo.txt");
    my @words = map { s/[.,!\?]\B//g; split; } <FILE>;
    close FILE;
 open (FILE, "foo.txt");
    my @lines = map { s/[.,!\?]\B//g } <FILE>;
    close FILE;
 open (FILE, "foo.txt");
    my @lines = map { s/[.,!\?]\B//g; $_; } <FILE>;
    close FILE;
open (FILE, "foo.txt");
    my @lines = map { chomp; $_; } <FILE>;
    close FILE;
open (FILE, "foo.txt");
    my @lines = <FILE>;
    chomp(@lines);
    close FILE;




if(any {length>10} @s) { say "at least one string has more than 10 chars.";}
if(none {length>10} @s) { say "none";}
if(all {
if(notall{
if(first { defined($_)} @s) { say "first defined value in @s";}
if(first { $_ > $val} @s} {say "first value in @s which is greater than $v";}
$a=max @s; #highest numerial value:min
$a=maxstr @s; #highest string in order 'A'<'Z',"hello"<"world";minstr

map 함수는 배열을 입력으로 받아 배열의 모든 원소 $_에 어떤 조작을 가하여 그 결과들로 새로운 배열을 생성한다. 어떻게 조작할지는 중괄호 안에 하나의 표현식으로 지정한다:

my @capitals = ("Baton Rouge", "Indianapolis", "Columbus", "Montgomery", "Helena", "Denber", "Boise");

print join, ", ", map { uc $_ } @capitals;
# "BATON ROUGE, INDIANAPOLIS, COLUMBUS, MONTGOMERY, HELENA, DENVER, BOISE"




use 5.010;
while(<>) {  chomp;  print if /pa/;}
while(<>) { chomp; if /pa/ {say;}}

$x=defined $x ? $x : $DEFAULT;
$x ||= $DEFAULT;  #$x 가 0 또는 "0" 또는 빈문자열일 경우 DEFAULT값으로 대체됨
$x //= $DEFAULT; #$x 가 undef 일 경우만 대체됨됨

my $c=0;
sub nc { $c++; return $c;}

sub nc { state $c=0; $c++; return $c;}

게시물: 115 건, 현재: 1 / 1 쪽
번호 제       목 작성자 등록일 방문
115  perl format JMJS 24.6.22 9
114  perl -p -i -e s/abc/def/g JMJS 24.3.26 35
113  Deleting from a Hash JMJS 24.1.23 44
112  yaml file 읽기 JMJS 23.11.30 83
111  alzipcon JMJS 22.11.26 136
110  file2date.pl JMJS 24.6.1 245
109  UTF-8, EUC-KR JMJS 19.12.15 221
108  wget.pl LWP Simple get JMJS 19.9.17 258
107  X JMJS 19.9.17 260
106  X JMJS 19.9.17 260
105  X JMJS 19.9.17 260
104  X JMJS 19.9.17 260
103  X JMJS 19.9.17 260
102  X JMJS 19.9.17 260
101  X JMJS 19.9.17 260
100  jsame.pl JMJS 09.5.21 1770
99  jos.pl JMJS 08.11.29 1507
98  jmngr.pl - jmjspro manager JMJS 08.11.29 1541
97  vhdl.pm JMJS 08.11.29 1508
96  jreg.pl JMJS 08.11.29 1505
95  jtree.pm JMJS 08.11.29 1567
94  w2c.pl JMJS 08.11.29 1538
93  jdread.pl JMJS 08.11.29 1316
92  ffile.zip ffilediff.pl JMJS 09.4.24 1371
91  rgb2ycbcr.pl JMJS 10.5.12 1662
90  proview.pl JMJS 08.11.29 1687
89  smi_shift.pl JMJS 10.10.3 1347
88  srt2smi.pl srtshift.pl JMJS 18.7.14 1531
87  Perl CGI Input Test, getenv.cgi JMJS 18.11.21 1196
86  hash JMJS 24.6.22 1488
85  tr a-z A-Z 치환 , 대소문자 변환 , 문자열 조건 , ... JMJS 24.6.22 1288
84  JARRAY->jfunc JMJS 08.10.2 1265
83  수치함수 - ... JMJS 09.5.7 1723
82  역행렬3x3 JMJS 09.5.7 1790
81  hex2int.pl JMJS 10.9.12 2496
80  stat - file status 보기 JMJS 07.12.16 1381
79  Perl Tip JMJS 24.6.22 2509
78  SMI file sync delay JMJS 07.7.18 1477
77  rmword.pl JMJS 07.6.18 1387
76  pack unpack JMJS 24.6.22 1293
75  [Perl]read_dir.pl JMJS 07.2.22 1569
74  [Perl]jtab2char - tab문자를 특정 char로 바꿔주기 JMJS 07.2.22 1523
73  Perl 숫자 Sorting JMJS 11.5.17 1624
72  [CGI]GET and POST JMJS 06.11.20 3287
71  Perl Grammer JMJS 06.9.4 2868
70  표준 모듈 JMJS 06.8.10 1767
69  Getopt::Long example JMJS 06.8.10 1958
68  array of array JMJS 06.4.22 1371
67  [HTML]테이블 배경에 그림넣기 JMJS 06.3.8 1458
66  l2w.pm - line to word JMJS 08.12.1 1447
65  make_random_chars JMJS 05.8.10 1300
64  mail 보내는 script JMJS 05.3.23 1258
63  실행파일을 실행시키고 표준에러 읽기 JMJS 09.2.25 1269
62  팝업창(공지창)띄우기 Jinsung 03.12.16 2364
61  print <<ENDLINE JMJS 03.12.5 1363
60  [HTML]Target JMJS 03.5.21 1396
59  [Perl]jutil.pm JMJS 03.5.3 1633
58  [Perl]jdiff.pl JMJS 02.6.6 1530
57  [Perl]cfilter.pm - commant filter JMJS 02.1.31 1566
56  [HTML]자동으로 다른 페이지 이동 JMJS 02.1.19 1410
55  STDIN file open glob -w warning JMJS 24.6.22 1441
54  opendir , readdir , closedir JMJS 24.6.22 1452
53  rand_diff JMJS 01.10.23 1349
52  vcd2v.pl JMJS 15.8.25 1412
51  file upload JMJS 24.6.22 1365
50  umask(070) <- chmod o-rwx 진성 01.3.16 1522
49  head2index 진성 01.3.15 1225
48  grep.pl JMJS 11.1.20 1340
47  chr(13) = \M 진성 01.3.15 1211
46  stty JMJS 01.3.12 1330
45  des.pl JMJS 01.3.8 1274
44  chr_plus.pl JMJS 01.3.8 1297
43  get passwd in unix JMJS 19.8.18 1151
42  unsort JMJS 19.9.10 1386
41  read from website web JMJS 19.5.15 1188
40  vec JMJS 01.3.8 1445
39  chomp $_ @_ say defined use 5.010 state grep any ... JMJS 18.10.27 1356
38  [Perl Tk] 도스창 없이, 펄 Tk 스크립트 실행하기; ... JMJS 17.9.30 1315
37  @bs = sort {$a <=> $b} @as; JMJS 17.7.12 1395
36  if ( -e -z -s -f -d -T -B -M ) JMJS 16.3.10 1481
35  mkmm.pl - make freemind JMJS 12.5.22 1425
34  perl -pi.orig -e "s/\bu_(\w+_t)\b/u$1/g" *.c JMJS 11.8.26 1425
33  .xls output csv 파일에 \n "가 있을때 JMJS 11.4.13 1306
32  jdcat.pl juncat.pl JMJS 11.2.24 1453
31  print chr(ord('a')); JMJS 01.3.8 1370
30  require "/user/home/jin1/jin1.pm"; JMJS 00.11.28 1311
29  for(my $i=0; $i < @abc; $i ++) {} JMJS 00.11.15 1397
28  remove blank $abc =~ s/[\s]+//g; JMJS 00.11.15 1346
27  array and for JMJS 00.11.14 1189
26  홈페이지 자동 이동 JMJS 00.10.28 1238
25  html에서 쓰이는 기호표시방법 JMJS 00.9.30 1194
24  배열의 범위 연산자 JMJS 00.9.20 1491
23  for(1..3) { print "$_";} JMJS 09.4.24 1176
22  package JMJS 24.6.22 1239
21  줄에서 한글자 고치기 JMJS 00.8.7 1298
20  hotkey function by getc JMJS 00.7.21 1392
19  read, sysread, syswrite JMJS 00.7.21 2203
18  crypt JMJS 00.7.13 1506
17  csv2gan.pl JMJS 11.4.4 1513
16  hexa JMJS 24.6.18 1340
15  file in out.pl JMJS 00.7.5 1523
14  ARGV JMJS 00.7.5 1369
13  jtime.pm - localtime, timelocal JMJS 09.4.9 1870
12  @INC JMJS 00.7.5 1717
11  $#myarray JMJS 00.7.5 1478
10  Hash of Array JMJS 00.7.5 1285
9  package JARRAY JHASH JMJS 00.7.4 1528
8  foreach, while each, dos2unix.pl, next last JMJS 09.4.24 1481
7  X JMJS 24.6.22 1302
6  file lock JMJS 00.7.4 1426
5  gettime JMJS 00.7.4 1393
4  [Perl]jcdread.pl JMJS 00.7.4 1463
3  [Perl]jdread.pl JMJS 00.7.4 1377
2  Monti Hall problem JMJS 24.6.27 1356
1  DESTROY JMJS 09.7.20 1316
[1]