# extract ASN.1 from an IETF RFC # # usage : rfcExtractAsn1 if (@ARGV < 1) { print "usage: rfcExtractAsn1.pl \n"; exit (-1); } use LWP::Simple; $pageURL=$ARGV[0]; # for example, http://tools.ietf.org/html/rfc5911 $simplePage=get($pageURL); $simplePage =~ s/\.+\<\/span\>//g; $simplePage =~ s/\<\/pre\>\\//g; $simplePage =~ s/\&\;/&/g; while (1) { if ($simplePage =~ m/[A-Z][\w\-]*\s+\{[\w\(\)\-\s]+\}\s+DEFINITIONS[\w\s]+\:\:\=\s+BEGIN.*?\bEND/s) { print "$&\n"; $simplePage = $'; print ("\n\n"); } else { # print "not matched\n"; last; } } print ("\n\n"); # print $simplePage;