Play one audio clip after another is finished - how????

I give up!

How do you make this work as all the unity answers tell me it should?

Right now the ‘start game’ audio is playing at the same time as the ‘siren’ audio.

    private IEnumerator WaitForAudio(AudioSource asAudio)
    {
        yield return new WaitForSeconds(asAudio.clip.length);
    }

    private void DoGameStart()
    {
        Debug.Log("###### GAME STARTED ######");
        m_bGameStarted = true;
        m_bNewLifeDelay = false;
        m_nLives = 4;
        m_goPacman.SetActive(true);
        m_arrayAudio[m_nIndexStartGame].Play();
        WaitForAudio(m_arrayAudio[m_nIndexStartGame]);
        m_arrayAudio[m_nIndexSiren].Play();
        Debug.Log("@@@@@@ FINISHED @@@@@@");
    }

Start the coroutine, and Play after you yield return.