Perl 5.44 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ μ‚¬μš© κ°€λŠ₯

1λ…„κ°„μ˜ 개발 끝에 Perl ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ μƒˆλ‘œμš΄ μ•ˆμ • 버전인 5.44κ°€ μΆœμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이번 μƒˆ 버전을 μ€€λΉ„ν•˜λŠ” κ³Όμ •μ—μ„œ μ•½ 27만 μ€„μ˜ μ½”λ“œ(λ¬Έμ„œ 및 μžλ™ 생성 μ½”λ“œ 11만 쀄 μ œμ™Έ)κ°€ μˆ˜μ •λ˜μ—ˆμœΌλ©°, μ΄λŠ” 860개의 νŒŒμΌμ— 영ν–₯을 λ―Έμ³€κ³ , 71λͺ…μ˜ κ°œλ°œμžκ°€ κ°œλ°œμ— μ°Έμ—¬ν–ˆμŠ΅λ‹ˆλ‹€.

5.44 λΈŒλžœμΉ˜λŠ” 13λ…„ 전에 수립된 κ³ μ • 개발 일정에 따라 μΆœμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 일정에 따라 μ•ˆμ • 버전은 λ§€λ…„ ν•œ 번, λ§ˆμ΄λ„ˆ 버전은 3κ°œμ›”λ§ˆλ‹€ μΆœμ‹œλ©λ‹ˆλ‹€. 첫 번째 λ§ˆμ΄λ„ˆ 버전인 Perl 5.44.1은 μ•½ ν•œ 달 후에 μΆœμ‹œλ  μ˜ˆμ •μ΄λ©°, Perl 5.44.0 κ΅¬ν˜„ κ³Όμ •μ—μ„œ 발견된 μ£Όμš” 버그듀을 μˆ˜μ •ν•©λ‹ˆλ‹€. Perl 5.44 μΆœμ‹œμ™€ ν•¨κ»˜ 5.40 λΈŒλžœμΉ˜μ— λŒ€ν•œ 지원은 μ’…λ£Œλ˜μ—ˆμœΌλ©°, ν–₯ν›„ μ‹¬κ°ν•œ λ³΄μ•ˆ λ¬Έμ œκ°€ 발견될 κ²½μš°μ—λ§Œ μ—…λ°μ΄νŠΈκ°€ 제곡될 수 μžˆμŠ΅λ‹ˆλ‹€. μ‹€ν—˜μ μΈ 5.45 브랜치 개발이 μ‹œμž‘λ˜μ—ˆμœΌλ©°, 7.x 버전 번호 μ²΄κ³„λ‘œ μ „ν™˜ν•˜κΈ°λ‘œ κ²°μ •ν•˜μ§€ μ•ŠλŠ” ν•œ, 이 λΈŒλžœμΉ˜λŠ” 2027λ…„ μƒλ°˜κΈ°μ— μΆœμ‹œλ  μ•ˆμ • 버전 Perl 5.46의 기반이 될 κ²ƒμž…λ‹ˆλ‹€.

μ£Όμš” λ³€κ²½ 사항:

  • ν•¨μˆ˜ μ‹œκ·Έλ‹ˆμ²˜μ— λͺ…λͺ…λœ λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•  수 μžˆλŠ” μ‹€ν—˜μ μΈ κΈ°λŠ₯을 μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ λ§€κ°œλ³€μˆ˜λŠ” ν•¨μˆ˜ 본문이 μ•„λ‹Œ ν•¨μˆ˜ μ„ μ–Έ μ‹œμ— ν•¨μˆ˜μ— μ „λ‹¬λ˜λŠ” λ³€μˆ˜ λͺ©λ‘μ„ μ •μ˜ν•©λ‹ˆλ‹€. 이 μƒˆλ‘œμš΄ κΈ°λŠ₯을 톡해 λ§€κ°œλ³€μˆ˜λ₯Ό μ—„κ²©ν•œ μˆœμ„œκ°€ μ•„λ‹Œ μž„μ˜μ˜ μˆœμ„œλ‘œ 전달할 수 있으며, ν‚€/κ°’ 쌍과 ν•΄μ‹œ μš”μ†Œμ— 값을 ν• λ‹Ήν•˜λŠ” 것과 μœ μ‚¬ν•œ ꡬ문을 μ‚¬μš©ν•©λ‹ˆλ‹€. κΈ°μ‘΄ ꡬ문: sub f { my ($x, $y) = @_; …} f(1, 2); λͺ…λͺ…λœ λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•œ μ‹œκ·Έλ‹ˆμ²˜: sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • μ—¬λŸ¬ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” foreach λ£¨ν”„μ—μ„œ 별칭(포인터에 λŒ€ν•œ 포인터)을 μ‚¬μš©ν•˜λŠ” μ‹€ν—˜μ  지원이 μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 κΈ°λŠ₯을 μ‚¬μš©ν•˜λ©΄ 단일 루프 λ°˜λ³΅μ—μ„œ μ—¬λŸ¬ 값을 κ°€μ Έμ˜¬ λ•Œ foreach λ£¨ν”„μ—μ„œ 별칭을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, ν•΄μ‹œμ˜ 킀와 값을 λͺ¨λ‘ λ°˜λ³΅ν•  λ•Œ 배열을 μ‚¬μš©ν•˜μ—¬ ν•΄μ‹œ μš”μ†Œμ— λŒ€ν•œ 별칭을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. μ˜ˆμ‹œ: use v5.44; use feature qw( refaliasing declared_refs ); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, \@items ) ( %hash ) { say "The $key array contains: @items"; } # 버전 5.44 μ΄μ „μ—λŠ” μ—­μ°Έμ‘°κ°€ ν•„μš”ν–ˆμŠ΅λ‹ˆλ‹€. foreach my ( $key, $var ) ( %hash ) { say "The $key array contains: @$var"; } # μ‹€ν—˜μ μΈ refalias 및 declared_refs κΈ°λŠ₯ 없이: foreach my $key (keys %hash) { say "$key λ°°μ—΄μ—λŠ” λ‹€μŒμ΄ ν¬ν•¨λ©λ‹ˆλ‹€: @{$hash{$key}}"; }
  • μ •κ·œ ν‘œν˜„μ‹μ— 이제 μ‹€ν—˜μ μΈ 'enhanced_xx' λͺ¨λ“œκ°€ μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 λͺ¨λ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ λŒ€κ΄„ν˜Έ([a-zA-Z]) μ•ˆμ˜ 문자 ν΄λž˜μŠ€μ— "/xx" μˆ˜μ •μžλ₯Ό μ‚¬μš©ν•˜μ—¬ μ—¬λŸ¬ μ€„λ‘œ λ‚˜λˆ„κ±°λ‚˜ 주석을 μ‚½μž…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, "if ($text =~ m/[a-zA-Z]/){" 쑰건은 λ‹€μŒκ³Ό 같이 μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. if ($text =~ m/[ a-z # μ†Œλ¬Έμž A-Z # λŒ€λ¬Έμž ]/xx) {
  • μ˜μ‚¬λ‚œμˆ˜ μƒμ„±κΈ°λŠ” ν•΄λ‹Ή κΈ°λŠ₯을 μ§€μ›ν•˜λŠ” μ‹œμŠ€ν…œμ—μ„œ getentropy() μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ μ‚¬μš©ν•˜μ—¬ μ—”νŠΈλ‘œν”Όλ₯Ό μ–»μŠ΅λ‹ˆλ‹€.Linux, BSD, macOSλ‹€λ₯Έ μ‹œμŠ€ν…œμ—μ„œλŠ” /dev/urandom μž₯μΉ˜μ—μ„œ μ½κ±°λ‚˜ μ‹œκ°„, ν”„λ‘œμ„ΈμŠ€ ID 및 포인터 κ°’μ˜ ν•΄μ‹œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ—”νŠΈλ‘œν”Όλ₯Ό μ–»μŠ΅λ‹ˆλ‹€.
  • μœ λ‹ˆμ½”λ“œ 17.0 사양에 λŒ€ν•œ 지원이 μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
  • μ‹λ³„μž 이름과 μ •κ·œ ν‘œν˜„μ‹ 그룹에 λŒ€ν•΄ μœ λ‹ˆμ½”λ“œ κ·œμΉ™μ„ μ—„κ²©ν•˜κ²Œ μ€€μˆ˜ν•˜λ„λ‘ ν•˜μ˜€μœΌλ©°, 이전에 "\w" ν΄λž˜μŠ€μ— ν¬ν•¨λ˜μ—ˆλ˜ μ•½ 160개의 μœ λ‹ˆμ½”λ“œ λ¬Έμžκ°€ 이제 μ‚¬μš©μ΄ κΈˆμ§€λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λͺ¨λ“  문자, 숫자 및 밑쀄 문자λ₯Ό ν¬ν•¨ν•˜λŠ” "\w" ν΄λž˜μŠ€λŠ” 이제 μ‹€μ œ 문자처럼 λ³΄μ΄μ§€λ§Œ λ¬Έμžκ°€ μ•„λ‹Œ μ›μœΌλ‘œ β€‹β€‹λ‘˜λŸ¬μ‹ΈμΈ 라틴 문자λ₯Ό μ œμ™Έν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ λ™μž‘ 변경은 "ute utf8" λͺ¨λ“œλ₯Ό μ‚¬μš©ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ—λ§Œ μ μš©λ©λ‹ˆλ‹€.
  • Perl_study_chunk(CVE-2026-8376, 32λΉ„νŠΈ λΉŒλ“œμ— 영ν–₯) 및 S_measure_struct(CVE-2026-57432) ν•¨μˆ˜μ˜ 버퍼 μ˜€λ²„ν”Œλ‘œ 취약점과 μ •κ·œ ν‘œν˜„μ‹ μ—”μ§„μ˜ 16λΉ„νŠΈ μΉ΄μš΄ν„° μ˜€λ²„ν”Œλ‘œ(CVE-2026-13221)λ₯Ό μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€. 이 μ·¨μ•½μ μœΌλ‘œ 인해 μ •κ·œ ν‘œν˜„μ‹μ΄ 잘λͺ» 싀행될 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
  • goto μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ λ°˜λ³΅λ¬Έμ΄λ‚˜ 블둝 ꡬ쑰 λ‚΄μ˜ μœ„μΉ˜λ‘œ μ΄λ™ν•˜λŠ” 것은 κΈˆμ§€λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 이 κΈ°λŠ₯은 2010년에 μ‚¬μš©μ΄ μ€‘λ‹¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
  • μ •μˆ˜ λ§μ…ˆ, λΊ„μ…ˆ, κ³±μ…ˆ, ν•¨μˆ˜ μ‹œκ·Έλ‹ˆμ²˜ 처리, 컴파일 μ‹œμ μ— μ•Œλ €μ§„ λ¬Έμžμ—΄ ν‚€λ₯Ό μ‚¬μš©ν•˜λŠ” ν‚€/κ°’ λͺ©λ‘μ—μ„œ ν•΄μ‹œλ₯Ό μ±„μš°λŠ” 속도λ₯Ό ν–₯μƒμ‹œν‚€κΈ° μœ„ν•œ μ„±λŠ₯ μ΅œμ ν™”κ°€ μ΄λ£¨μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€.

좜처 : opennet.ru

DDoS 보호, VPS VDS μ„œλ²„κ°€ μžˆλŠ” μ‚¬μ΄νŠΈλ₯Ό μœ„ν•œ μ•ˆμ •μ μΈ ν˜ΈμŠ€νŒ… κ΅¬μž… πŸ”₯ DDoS 곡격 λ°©μ§€ κΈ°λŠ₯이 νƒ‘μž¬λœ μ•ˆμ •μ μΈ μ›Ήμ‚¬μ΄νŠΈ ν˜ΈμŠ€νŒ…, VPS 및 VDS μ„œλ²„λ₯Ό κ΅¬λ§€ν•˜μ„Έμš” | ProHoster