You can use backticks to quote the terminating string; you can also stack multiple heredocs. Here's an example to get the output you show:
#!/usr/bin/env perl use strict; use warnings; my $rule_base = 'ip rule add fwmark 0x0201/0xffff table'; my $route_base = 'ip route add default via 172.27.201.1 dev eth1.201 t +able'; my @table_nums = (200, 201); my $routing_commands = <<`RULE` . <<`ROUTE`; for i in @table_nums; do echo "$rule_base \$i"; done RULE for i in @table_nums; do echo "$route_base \$i"; done ROUTE print $routing_commands;
Output:
ip rule add fwmark 0x0201/0xffff table 200 ip rule add fwmark 0x0201/0xffff table 201 ip route add default via 172.27.201.1 dev eth1.201 table 200 ip route add default via 172.27.201.1 dev eth1.201 table 201
See "perlop: here-document syntax" for details.
— Ken
In reply to Re: hiccoughing here documents
by kcott
in thread hiccoughing here documents
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |