in reply to Edit huge file
There is no way to remove bytes from the middle of a file without rewriting it, and there is no way to rewrite it without reading it. However, 500MiB is really nothing, unless you need to access it over a (slow) network or very slow local media such as tape, which is thankfully, finally becoming less common. With typical consumer-level HDDs from a few years ago, you're probably looking at a few seconds.
The basic structure would be something like this:
while (<>) { print unless /^pattern to skip$/; }
If you need to do something based on line number, use $. to get the current line number.
This also leads itself fairly readily to a one-liner if your logic is relatively simple:
$ perl -nle 'print unless /^pattern to skip$/ or $. == 10' filename.txt
|
|---|