/ / co Perl będzie potrzebował do porównania w tym przypadku? - perl, operatorzy

co Perl weźmie do porównania w tym przypadku? - perl, operatorzy

Zainteresowany takim porównaniem, jakąś wskazówką?

Powiedzmy, że są dwie zmienne jak poniżej:

$p1 = "2013-01-11/2013-01-04";
$p2 = "2013-01-12/2012-01-05";

Jeśli tak jak poniżej, kody w Perlu,

if $p1 lt $p2

Co Perl zrobi, aby porównać i jak?

Odpowiedzi:

7 dla odpowiedzi № 1

lt jest operatorem porównania łańcuchów i porównuje dwa operandy w ich dosłownym znaczeniu.

W twoim przypadku dwie struny

2013-01-11/2013-01-04
||||||||||
2013-01-12/2012-01-05

zostanie porównany w sposób zilustrowany i zatrzyma się na pozycji 9 (znaki pierwszej pozycji są różne, również należy zauważyć, że indeks łańcucha zaczyna się od 0), tj. 1 w $p1 i 2 w $p2. I również 1 jest mniej niż 2 dosłownie. Więc $p1 lt $2 jest prawdziwy.


-1 dla odpowiedzi № 2

Podział zadań:

  • rozdziel łańcuchy na pary łańcuchów (start_stringtime, end_stringtime)
  • przekonwertować każdy ciąg w parze ciągów na datę / godzinę
    (tam jest moduły gazillion w tym celu wybierz jeden lub kilka odpowiednich dla twojego zadania)
  • oblicz okresy dla każdej pary
  • porównaj okresy liczbowo - if $p1 < $p2

To pytanie:
Przekonwertuj ciąg „20-maj-07” na datę i manipuluj

da ci kilka wskazówek