Горячая линия BSNL и штат обычно знакомы с MS Windows и не могут быть слишком полезными, но если они будут, то это будет приятный сюрприз.
я предполагаю что: модем маршрутизатор ADSL ; Вы - двойная загрузка с MS Windows; и у Вас нет проблемы при соединении через MS Windows.
, Который должен сделать это. Если Вы не находитесь на неограниченном плане, Вы не можете хотеть соединяться "автоматически".
Я пишу систему управления для робота Джо, который хочет уйти Роботизировать Мэри и подзарядить ее. Они перемещаются по целым точкам на линии. Джо начинается с $ j и может пройти 1 метр в любом направлении за единицу времени. Мэри стоит на $ m и не может пошевелиться - ей нужно подзарядиться! Управляющая программа будет выглядеть так:
while ($m != $j) {
$j += ($m <=> $j);
}
Оператор <=>
может быть полезен для алгоритма двоичного поиска . В большинстве языков программирования нет оператора, выполняющего трехстороннее сравнение, что требует выполнения двух сравнений на итерацию. С <=>
вы можете сделать только один.
sub binary_search {
my $value = shift;
my $array = shift;
my $low = 0;
my $high = $#$array;
while ($low <= $high) {
my $mid = $low + int(($high - $low) / 2);
given ($array->[$mid] <=> $value) {
when (-1) { $low = $mid + 1 }
when ( 1) { $high = $mid - 1 }
when ( 0) { return $mid }
}
}
return;
}
Любым методом сравнения. Например, у вас может быть сложный объект, но у вас все еще есть определенный "порядок", поэтому вы можете определить для него функцию сравнения (которой у вас нет для использования внутри метода сортировки, хотя это было бы удобно):
package Foo;
# ... other stuff...
# Note: this is a class function, not a method
sub cmp
{
my $object1 = shift;
my $object2 = shift;
my $compare1 = sprintf("%04d%04d%04d", $object1->{field1}, $object1->{field2}, $object1->{field3});
my $compare2 = sprintf("%04d%04d%04d", $object2->{field1}, $object2->{field2}, $object2->{field3});
return $compare1 <=> $compare2;
}
Конечно, это полностью надуманный пример. Однако в исходном коде моей компании я нашел почти в точности то, что указано выше, для сравнения объектов, используемых для хранения информации о дате и времени.
Еще одно использование, которое я могу придумать, - это статистический анализ - если значение повторно запускается по списку значений, вы можете определить, выше или ниже значение арифметической медианы набора:
use List::Util qw(sum);
# $result will be
# -1 if value is lower than the median of @setOfValues,
# 1 if value is higher than the median of @setOfValues,
# 0 if value is equal to the median
my $result = sum(map { $value <=> $_ } @setOfValues);
Вот еще один, из wikipedia : «Если два аргумента не могут быть сравнены (например, один из них - NaN) , оператор возвращает undef.