<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Loc on 아겔로그</title>
    <link>https://ageldama.github.io/tags/loc/</link>
    <description>Recent content in Loc on 아겔로그</description>
    <generator>Hugo</generator>
    <language>ko-kr</language>
    <copyright>© &lt;a href=&#39;https://ageldama.github.io/myself&#39;&gt;ageldama&lt;/a&gt; 👾</copyright>
    <lastBuildDate>Fri, 10 Apr 2026 06:24:06 +0000</lastBuildDate>
    <atom:link href="https://ageldama.github.io/tags/loc/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>🐫 ridiculosly Perl</title>
      <link>https://ageldama.github.io/posts/2026-04apr/ridiculously-perl/</link>
      <pubDate>Fri, 10 Apr 2026 06:24:06 +0000</pubDate>
      <guid>https://ageldama.github.io/posts/2026-04apr/ridiculously-perl/</guid>
      <description>&lt;p&gt;&#xA;개인적으로 몇년째 사용하는 스크립트가 있다. 조금 로직이 복잡하고&#xA;여러가지 기능을 계속해서 붙여가며 계속 사용하고 있다.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;처음엔 단순하게 &lt;a href=&#34;https://www.tcl-lang.org/&#34;&gt;Tcl&lt;/a&gt;-으로 작성하다가 어느 샌가, Python, Ruby, Perl으로&#xA;심지어 커먼리습으로 동일한 기능을 재작성하며 마음에 드는걸 계속&#xA;써오고 있다.&lt;/p&gt;&#xA;&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;&#xA;&lt;h2 id=&#34;headline-1&#34;&gt;&#xA;각 언어별 구현의 특징은&#xA;&lt;/h2&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;&#xA;&lt;p&gt;(…어차피 완전히 같은 기능을 구현하는거지만)&lt;/p&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&#xA;커먼리습&#xA;&lt;/dt&gt;&#xA;&lt;dd&gt;Sly으로 작업하면서 재밌긴 했다. 하지만, 솔직히 쉘환경에서&#xA;사용하기 위한 CLI애플리케이션을 작성해 나가기엔, ASDF/SBCL으로&#xA;빌드하는게 더 귀찮을때가 있다.&lt;/dd&gt;&#xA;&lt;dt&gt;&#xA;Python&#xA;&lt;/dt&gt;&#xA;&lt;dd&gt;LOC이 가장 짧다. 심지어 펄버전이랑 비교하면 1/2 밖엔 되지&#xA;않는다. Generators 같은걸 그냥 쉽게 활용할 수 있어서 심지어&#xA;메모리복잡도면에서도 가장 효율적이다. (이론적으로는, 어차피 몇백줄&#xA;되지도 않는 입력파일을 읽는 부분이지만) …Python 내장&#xA;“Batteries”만으로 CLI파싱, shlex, 하위프로세스관리, Pathname 처리&#xA;등등 강력하고 간결하다. ㅎㅎ ordered-dict 라이브러리를 쓰지 않고&#xA;직접구현해 사용하는데, 파이썬답게 for..in을 지원하는 iterator을&#xA;효율적으로 만들 수 있었다.&lt;/dd&gt;&#xA;&lt;dt&gt;&#xA;Ruby&#xA;&lt;/dt&gt;&#xA;&lt;dd&gt;코드가 예쁘다. 시각적으로는 가장 sparse해보이지만 실제로&#xA;의미론적으로는 가장 density이 높아서 그럴거 같다. 파이썬처럼 내장&#xA;라이브러리만으로 강력하게 쓸만하다. Block/Yield을 통해서 내장하지&#xA;않는 ordered-map 같은 자료구조를 만든걸 순회하기 수월했다.&#xA;Perl스러운 표현이나 C언어의 특징을 그대로 가져와 쓰는 것도&#xA;편하다. (예: &lt;code&gt;strftime&lt;/code&gt;)&lt;/dd&gt;&#xA;&lt;dt&gt;&#xA;Tcl&#xA;&lt;/dt&gt;&#xA;&lt;dd&gt;뭔가 쓰긴 했는데 묘하게 눈에 잘 안들어온다. 아마도 많이&#xA;사용해오지 않은 탓 같다. 마음먹으면 더 확장하거나 정제해 나갈 부분이&#xA;많지만, 펄로 재작성한 이후로 더이상 개선해오지 않았다. Tcllib 등&#xA;“Battery”이 있고 문서화도 엄청나게 잘되어 있지만 묘하게 요즘엔 손이&#xA;잘 가지 않는다.&lt;/dd&gt;&#xA;&lt;dt&gt;&#xA;Perl&#xA;&lt;/dt&gt;&#xA;&lt;dd&gt;구현중 라인수도 길고, 조금 어색한 부분도 여전히 있다(예:&#xA;package vs. class), 그리고 내장모듈만으로 좀 부족해서 외부&#xA;CPAN라이브러리에 의존하는 부분도 있다. (&lt;code&gt;String::ShellQuote&lt;/code&gt;) …그&#xA;이외엔 가장 이상한데 마음에 든다. ㅎㅎ&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;p&gt;다른 언어로 재작성한건 순전히 흥미로 그냥 재작성을 했었었다. Tcl버전을&#xA;계속 써도 괜찮았겠지만. –지금은 그냥 Perl 버전만을 사용하고 버그를&#xA;고치고 기능을 더해가고 있는거 같다.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
