Damian Conway wrote a self-modifying program called "SelfGOL" which also uses seek on the <DATA> handle, in a similar manner (I believe; it's pretty obfuscated code, and I haven't yet seen the talk where he explains it).

However, the code is easy to locate on the web. If somebody wants to use seek with __DATA__ they've had quite a while to figure out how.

Personally, I think a perl virus is much less worrying than a compiled executable virus for the obvious reasons, but the topic is intellectually fascinating.

Here's his description of the talk:

_______________________

Extreme Perl -- The Horror That Is SelfGOL

In this talk I dissect the SelfGOL program: an obfuscated, self-aware, viral quine that can:

SelfGOL accomplishes these feats in under 1000 bytes of standard Perl, without importing any modules, and without using a single if, unless, while, until, for, foreach, goto, next, last, redo, map, or grep.

To do all that in under 1K of code, it relies on some extreme programming techniques, and on many of the obscure backwaters of the Perl syntax. This talk explores both.

_______________________

He's coming to boston.pm in less than two weeks; if we're lucky he may do this talk.

___
-DA


In reply to Re: Morality of posting Perl "virus" code? by da
in thread Morality of posting Perl "virus" code? by tachyon

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.