여기에 버그가 있다고 생각합니다. 나는 ':'으로 구분 된 숫자들로 구성된 문자열을 가지고있다. split()을 사용할 때 목록 항목의 수가 숫자가 아니며 "1289,2235,2300,2336"을 반환합니다. 여기 뭐가 잘못 됐니?펄 분할 함수가 무한 배열을 반환합니다.
#!/opt/local/bin/perl
$data="10:2284:2345:2381:9:2235:2300:2336:8:2212:2273:2320:7:2194:2262:2295:6:2165:2232:2269:5:2118:2167:2205:4:2086:2142:2161:3:2039:2106:2138:2:2034:2088:2127:1:2028:2079:2109:01:1999:2046:2080:02:1972:2016:2052:03:1960:1987:2019:04:1915:1945:1971:05:1870:1888:1911:06:1798:1828:1855:07:1764:1789:1809:08:1692:1728:1753:09:1665:1688:1706:010:1636:1657:1679:011:1575:1607:1641:012:1549:1582:1620:013:1485:1539:1582:014:1395:1485:1540:015:1382:1456:1504:016:1368:1422:1465:017:1301:1360:1405:018:1267:1252:1283:019:1213:1252:1283:020::1159:1180:021::1112:1143:022::1087:1094::";
@l = split(':',$data);
print scalar @l ;
나는 그것을 시도하고 128을 반환합니다. 나중에 코드에서 뭔가를 인쇄하는 것 같습니다. print 문 끝에서 줄 바꿈이 없으므로'print scalar @l; '의 출력에 연결됩니다. – Jens
나를 위해 잘 작동합니다. 나중에 인쇄 한 내용은 4 번째 콜론 뒤에 원래 문자열에 나타납니다. – DeVadder