in reply to Parsing file and removing a section

perl -ne 'print unless /<VirtualHost 123.123.123.123>/ .. m|</VirtualHost>|;' filename

You should be able to find out about the .. in perlop.