Question: I'm writing a toy os to learn the workings of it, here I came into a little problem. I want to do a long jump, just as follows:

```
ljmp $0x9000, *(%ax)

```

The section address is 0x9000, the offset address is stored in the register `ax` (currently I'm still under real mode), I've tried the following, none of them worked.

```
ljmp $0x9000, ax
ljmp $0x9000, %ax
ljmp $0x9000, (%ax)
ljmp $0x9000, *(%ax)

```

So how to do the trick? I'm using GNU AS (i686-elf-as).

Answer: 
From perldoc:

> 
> As another special case, split emulates the default behavior of the
>  command line tool awk when the PATTERN is either omitted or a literal
>  string composed of a single space character (such as ' ' or "\x20" ,
>  but not e.g. / / ). In this case, any leading whitespace in EXPR is
>  removed before splitting occurs, and the PATTERN is instead treated as
>  if it were /\s+/ ; in particular, this means that any contiguous
>  whitespace (not just a single space character) is used as a separator.
>  However, this special treatment can be avoided by specifying the
>  pattern / / instead of the string " " , thereby allowing only a single
>  space character to be a separator. In earlier Perls this special case
>  was restricted to the use of a plain " " as the pattern argument to
>  split, in Perl 5.18.0 and later this special case is triggered by any
>  expression which evaluates as the simple string " " .
> 
> 
> 

Your input string certainly contains multiple consecutive spaces, you'd better to split on `' '` instead of `\s+`

```
#!/usr/bin/perl
use Modern::Perl;
use Data::Dump qw(dump);

my $str = ' abc def a    b ';
my @l;
@l = split' ',$str;
dump@l;
@l = split/ /,$str;
dump@l;
@l = split/\s+/,$str;
dump@l;

```

**output:**

```
("abc", "def", "a", "b")
("", "abc", "def", "a", "", "", "", "b")
("", "abc", "def", "a", "b")

```
If `$comparator` begins with spaces, the first element of the result of `split /\s+/, $comparator` will be an empty string. However, I can't explain why there are 5000 times.

Would you give a more realistic code snippet? There're some obvious errors in the codes. (To increase the counters, we should use `$hash{$comparison}++`. To sort from greatest to lowest, we use `$hash{$b} <=> $hash{$a}`. The hash should be `%hash` instead of `%hashes`.) I think they are not the working ones. I wonder if there's anything wrong not in the listed codes.