in reply to Formatting text, eg long lines

You should post the first lines of your program as:
#!/usr/bin/perl use strict; use warnings;
as they provide help to find errors in your code.

Maybe chomp: chomp(my @modules = `lsmod`); will eliminate the extra newlines.

The module Perl6::Form may be of help here although I've not used it, and there's a bit of documentation and I haven't read it all.

I tried something like this

#!/usr/bin/perl use strict; use warnings; use Perl6::Form; my @modules = <DATA>; for (@modules) { my ($tables, $count, $count2, $text) = split; print form "{<<<<<<<<<<} {>>>>>} {>>} {[[[[[[[[[[[[[[[[[[[[[[[[[[ +[[[[[[}", $tables, $count, $count2, $text; } __DATA__ ip_tables 9688 3 iptable_mangle,iptable_nat,iptable_fil +ter x_tables 8964 17 xt_CONNMARK,xt_length,xt_tcpudp,ipt_d +scp,ipt_ipp2p,xt_connmark,ipt_multiport,xt_state,ipt_TOS,xt_CLASSIFY, +ipt_ACCOUNT,ipt_MASQUERADE,ipt_REDIRECT,ipt_REJECT,ipt_LOG,iptable_na +t,ip_tables sch_htb 14464 0 sch_sfq 4992 0 ppp_async 8192 0 crc_ccitt 2048 1 ppp_async ppp_synctty 6912 0 ppp_generic 21140 2 ppp_async,ppp_synctty
Output is
C:\perlp>perl t2.pl ip_tables 9688 3 iptable_mangle,iptable_nat,iptabl- e_filter x_tables 8964 17 xt_CONNMARK,xt_length,xt_tcpudp,i- pt_dscp,ipt_ipp2p,xt_connmark,ipt- _multiport,xt_state,ipt_TOS,xt_CL- ASSIFY,ipt_ACCOUNT,ipt_MASQUERADE- ,ipt_REDIRECT,ipt_REJECT,ipt_LOG,- iptable_nat,ip_tables sch_htb 14464 0 sch_sfq 4992 0 ppp_async 8192 0 crc_ccitt 2048 1 ppp_async ppp_synctty 6912 0 ppp_generic 21140 2 ppp_async,ppp_synctty