Starting a web browser: Difference between revisions

→‎{{header|Perl 6}}: Add Perl 6 example
(→‎{{header|Python}}: no implementation for more than 2 years)
(→‎{{header|Perl 6}}: Add Perl 6 example)
Line 121:
</table>
 
=={{header|Perl 6}}==
{{works with|Rakudo|2017.09}}
Uses the code from the [[Separate_the_house_number_from_the_street_name|Separate the house number from the street name]] task almost verbatim. Included here to make a complete, runnable example.
 
<lang perl6>use File::Temp;
 
my $addresses = qq :to /END/;
Plataanstraat 5
Straat 12
Straat 12 II
Dr. J. Straat 12
Dr. J. Straat 12 a
Dr. J. Straat 12-14
Laan 1940 – 1945 37
Plein 1940 2
1213-laan 11
16 april 1944 Pad 1
1e Kruisweg 36
Laan 1940-’45 66
Laan ’40-’45
Langeloërduinen 3 46
Marienwaerdt 2e Dreef 2
Provincialeweg N205 1
Rivium 2e Straat 59.
Nieuwe gracht 20rd
Nieuwe gracht 20rd 2
Nieuwe gracht 20zw /2
Nieuwe gracht 20zw/3
Nieuwe gracht 20 zw/4
Bahnhofstr. 4
Wertstr. 10
Lindenhof 1
Nordesch 20
Weilstr. 6
Harthauer Weg 2
Mainaustr. 49
August-Horch-Str. 3
Marktplatz 31
Schmidener Weg 3
Karl-Weysser-Str. 6
END
 
my @row-color = '#d7fffe', '#9dbcd4';
 
# build the table
sub genTable () {
my $table = '<table border="2"> <tr bgcolor="#02ccfe">' ~
qq|<th>Address</th><th>Street</th><th>House Number</th>\n|;
my $i = 0;
for $addresses.lines -> $addr {
$table ~= qq|<tr bgcolor="{@row-color[$i++ % 2]}"><td>{$addr}</td>|;
$addr ~~ m[
( .*? )
[
\s+
(
| \d+ [ \- | \/ ] \d+
| <!before 1940 | 1945> \d+ <[ a..z I . / \x20 ]>* \d*
)
]?
$
];
quietly $table ~= qq|<td>{$0.Str}</td><td>{$1.Str||''}</td></tr>\n|;
}
$table ~ '</table>';
}
 
# generate the page content
sub content {
qq :to /END/;
<html>
<head>
<title>Rosetta Code - Start a Web Browser</title>
<meta charset="UTF-8">
</head>
<body bgcolor="#d8dcd6">
<p align="center">
<font face="Arial, sans-serif" size="5">Split the house number from the street name</font>
</p>
<p align="center">
{ genTable }
</p>
</body>
</html>
END
}
 
# Use a temporary file name and file handle
my ($fn,$fh) = tempfile :suffix('.html');
 
# dump the content to the file
$fh.spurt: content;
 
# use appropriate command for Windows or X11'
# other OSs/WMs may need different invocation
my $command = $*DISTRO.is-win ?? "start $fn" !! "xdg-open $fn";
 
# start the browser
shell $command;
 
# wait for a bit to give browser time to load before destroying temp file
sleep 5;
</lang>
{{out}} Will start the default browser (or open a new tab/window in a running one) and display this table.
<div align="center">
<table border="2"> <tr bgcolor="#02ccfe"><th>Address</th><th>Street</th><th>House Number</th>
<tr bgcolor="#d7fffe"><td>Plataanstraat 5</td><td>Plataanstraat</td><td>5</td></tr>
<tr bgcolor="#9dbcd4"><td>Straat 12</td><td>Straat</td><td>12</td></tr>
<tr bgcolor="#d7fffe"><td>Straat 12 II</td><td>Straat</td><td>12 II</td></tr>
<tr bgcolor="#9dbcd4"><td>Dr. J. Straat 12</td><td>Dr. J. Straat</td><td>12</td></tr>
<tr bgcolor="#d7fffe"><td>Dr. J. Straat 12 a</td><td>Dr. J. Straat</td><td>12 a</td></tr>
<tr bgcolor="#9dbcd4"><td>Dr. J. Straat 12-14</td><td>Dr. J. Straat</td><td>12-14</td></tr>
<tr bgcolor="#d7fffe"><td>Laan 1940 – 1945 37</td><td>Laan 1940 – 1945</td><td>37</td></tr>
<tr bgcolor="#9dbcd4"><td>Plein 1940 2</td><td>Plein 1940</td><td>2</td></tr>
<tr bgcolor="#d7fffe"><td>1213-laan 11</td><td>1213-laan</td><td>11</td></tr>
<tr bgcolor="#9dbcd4"><td>16 april 1944 Pad 1</td><td>16 april 1944 Pad</td><td>1</td></tr>
<tr bgcolor="#d7fffe"><td>1e Kruisweg 36</td><td>1e Kruisweg</td><td>36</td></tr>
<tr bgcolor="#9dbcd4"><td>Laan 1940-’45 66</td><td>Laan 1940-’45</td><td>66</td></tr>
<tr bgcolor="#d7fffe"><td>Laan ’40-’45</td><td>Laan ’40-’45</td><td></td></tr>
<tr bgcolor="#9dbcd4"><td>Langeloërduinen 3 46</td><td>Langeloërduinen</td><td>3 46</td></tr>
<tr bgcolor="#d7fffe"><td>Marienwaerdt 2e Dreef 2</td><td>Marienwaerdt 2e Dreef</td><td>2</td></tr>
<tr bgcolor="#9dbcd4"><td>Provincialeweg N205 1</td><td>Provincialeweg N205</td><td>1</td></tr>
<tr bgcolor="#d7fffe"><td>Rivium 2e Straat 59.</td><td>Rivium 2e Straat</td><td>59.</td></tr>
<tr bgcolor="#9dbcd4"><td>Nieuwe gracht 20rd</td><td>Nieuwe gracht</td><td>20rd</td></tr>
<tr bgcolor="#d7fffe"><td>Nieuwe gracht 20rd 2</td><td>Nieuwe gracht</td><td>20rd 2</td></tr>
<tr bgcolor="#9dbcd4"><td>Nieuwe gracht 20zw /2</td><td>Nieuwe gracht</td><td>20zw /2</td></tr>
<tr bgcolor="#d7fffe"><td>Nieuwe gracht 20zw/3</td><td>Nieuwe gracht</td><td>20zw/3</td></tr>
<tr bgcolor="#9dbcd4"><td>Nieuwe gracht 20 zw/4</td><td>Nieuwe gracht</td><td>20 zw/4</td></tr>
<tr bgcolor="#d7fffe"><td>Bahnhofstr. 4</td><td>Bahnhofstr.</td><td>4</td></tr>
<tr bgcolor="#9dbcd4"><td>Wertstr. 10</td><td>Wertstr.</td><td>10</td></tr>
<tr bgcolor="#d7fffe"><td>Lindenhof 1</td><td>Lindenhof</td><td>1</td></tr>
<tr bgcolor="#9dbcd4"><td>Nordesch 20</td><td>Nordesch</td><td>20</td></tr>
<tr bgcolor="#d7fffe"><td>Weilstr. 6</td><td>Weilstr.</td><td>6</td></tr>
<tr bgcolor="#9dbcd4"><td>Harthauer Weg 2</td><td>Harthauer Weg</td><td>2</td></tr>
<tr bgcolor="#d7fffe"><td>Mainaustr. 49</td><td>Mainaustr.</td><td>49</td></tr>
<tr bgcolor="#9dbcd4"><td>August-Horch-Str. 3</td><td>August-Horch-Str.</td><td>3</td></tr>
<tr bgcolor="#d7fffe"><td>Marktplatz 31</td><td>Marktplatz</td><td>31</td></tr>
<tr bgcolor="#9dbcd4"><td>Schmidener Weg 3</td><td>Schmidener Weg</td><td>3</td></tr>
<tr bgcolor="#d7fffe"><td>Karl-Weysser-Str. 6</td><td>Karl-Weysser-Str.</td><td>6</td></tr>
</table>
</div>
 
=={{header|Racket}}==
10,333

edits